如果返回值本身是值类型的,这是安全的(临时变量生命周期变长的基本规则)。
如果返回值本身是引用类型的,这个取决于返回值所引用对象的生命周期。
当然,这种一般认为是不好的代码风格。
直接写const string s = some_func()是保证的RVO,效率一样,读代码的人不需要考虑是否安全这个问题。
代码应该写成一眼就知道是否正确,高手知道效率好不好。
不要写成一眼就知道效率好不好,但是高手才知道是否正确。
【 在 jimmycmh 的大作中提到: 】
: 话说这句const string &s = some_func();
: 引用一个函数返回的对象安全吗?
:
--
FROM 76.126.252.*