随着移动语义的引入,您是否只能将临时工具绑定到const引用更改?非const似乎也延长了寿命.
A getA() { return A();}
A & aref = getA(); //OK
string & str = string("h") + string("i"); //OK again
这是使用msvc,A的析构函数在主退出之前不会被调用.
解决方法:
不,规则是相同的,不允许将rvalue绑定到非const左值引用. MSVC使用(危险)扩展.
2024-03-07 14:43:21
随着移动语义的引入,您是否只能将临时工具绑定到const引用更改?非const似乎也延长了寿命.
A getA() { return A();}
A & aref = getA(); //OK
string & str = string("h") + string("i"); //OK again
这是使用msvc,A的析构函数在主退出之前不会被调用.
解决方法:
不,规则是相同的,不允许将rvalue绑定到非const左值引用. MSVC使用(危险)扩展.