如何使用返回值优化?
在现代编译器中,是否有任何情况可以信任优化,还是我应该始终采取安全的方式并返回某种类型的指针/使用引用作为参数?
是否已知有任何无法进行返回值优化的情况?看来对于编译器来说,返回值优化应该相当容易实现。
如何使用返回值优化?
在现代编译器中,是否有任何情况可以信任优化,还是我应该始终采取安全的方式并返回某种类型的指针/使用引用作为参数?
是否已知有任何无法进行返回值优化的情况?看来对于编译器来说,返回值优化应该相当容易实现。
Foo f() {
....
return Foo( ... );
}
但是,就像所有的优化一样,编译器总是可以选择不这样做。最终,如果您需要返回一个值,没有其他选择,只能信任编译器-指针和引用无法胜任。
Radians
类。RVO 技术使用在栈上分配的空间,因此具有访问内存的开销。 - MSalters