老问题

Jinhao Jinhao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
对于 临时对象 只能绑定到 const-ref 上,这是没有怀疑的。而C++对这点的要求也是为了避免代码中出现bug,不过有种情况好象与这点正好相反。

class T
{
public:
T& get_instance(){ return *this; }
//其他的部分
};

void fun(T& r)
{
//对r操作
}

int main()
{
fun(T().get_instance());
}
上面那段代码完全可以通过,其中对get_instance的调用,让编译器觉察到该处表达式的确是一个左值。对于这段代码来说,应该是绝对安全的。但是对于下面这段代码来说,就绝对地不安全了

T& r = T().get_instance();
//对r操作

这算是语言的纰漏吗?
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
Jinhao
C++ 语言 65,214 成员 250,514 内容