随着 move 语义的引入,只能将临时变量绑定(bind)到 const 引用的规则是否改变了?非常量似乎也能延长生命周期。
A getA() { return A();}
A & aref = getA(); //OK
string & str = string("h") + string("i"); //OK again
这是在 msvc 中,A 的析构函数在 main 退出之前不会被调用。
最佳答案
不,规则是一样的,你不能将右值绑定(bind)到非常量左值引用。 MSVC 正在使用(危险的)扩展。
关于c++ - 现在对临时工程的非 const 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32310835/