现在对临时工程的非 const 引用?

Non-const reference to temporary works now?

随着移动语义的引入,只能将临时对象绑定到 const 引用的规则是否发生了变化?非常量似乎也能延长寿命。

 A getA() { return A();}  

 A & aref = getA(); //OK
 string & str = string("h") + string("i"); //OK again

这是在 msvc 中,A 的析构函数在 main 退出之前不会被调用。

不,规则是一样的,您不能将右值绑定到非常量左值引用。 MSVC 正在使用(危险的)扩展。