最近我读到,从函数返回值来限定非内置类型的返回类型 const 是有意义的,例如:
const Result operation() {
//..do something..
return Result(..);
}
我正在努力理解这样做的好处,一旦返回对象,调用者肯定会选择决定返回的对象是否应该是 const ?
基本上,这里有一个轻微的语言问题。
std::string func() {
return "hai";
}
func().push_back('c'); // Perfectly valid, yet non-sensical
返回 const 右值是为了防止此类行为。然而,实际上,它弊大于利,因为现在右值引用在这里,您只会阻止移动语义,这很糟糕,并且明智地使用右值和左值可能会阻止上述行为*this
超载。另外,无论如何,你必须是一个白痴才能做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)