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

标签 c++ reference move-semantics rvalue temporary-objects

随着 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/

相关文章:

c# - 从 C++、C# 和 ruby​​ 调用 c dll

c++使用类成员作为模板参数

reference - ComponentLookupError : (<InterfaceClass zc. relation.interfaces.ICatalog>, '' ) 与 Dexterity 引用

object - 如何使用 WMIC 中的对象引用参数调用 WMI 方法?

c++ - move 类的构造函数

c++ - 无法跨多个 DLL 在 header 中定义单个对象

c++ - 调用函数时是否不支持间接转换?

C++ 传递临时堆栈对象作为对函数的引用

c++ - 使用非指针数据成员 move 语义

c++ - 使用模板 move 运算符