老问题
对于 临时对象 只能绑定到 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操作
这算是语言的纰漏吗?
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操作
这算是语言的纰漏吗?
...全文
相关推荐
评论:对待老员工问题的“四项基本原则”.docx
评论:对待老员工问题的“四项基本原则”.docx
对煤矿探放老空水钻孔布置中的几个问题的探讨
通过阐述煤矿老空水探放钻孔布置帮距的合理性和探水钻孔终孔位置钻孔间距与孔间距的矛盾,提出了“帮距”的新概念,统一了对探水钻孔终孔位置钻孔间距与孔间距的认识,明确了探水钻孔横向钻孔间距和纵向钻孔间距的要求是在掘进停掘位置。对煤矿探放老空水钻孔布置具有较强的指导意义。
精品资料(2021-2022年收藏的)老工业园区的消防问题及整顿措施.doc
精品资料(2021-2022年收藏的)老工业园区的消防问题及整顿措施.doc
社区“一老一小”服务供给现状及问题分析.pdf
社区“一老一小”服务供给现状及问题分析.pdf
pos、ansipos、fillchar在delphi2010中unicode的问题老代码升级.mht
pos、ansipos、fillchar在delphi2010中unicode的问题老代码升级.mht


