C++里面的 RVO(Return value optimization)

在给 uSTL 里面的 vector 尝试加入 C++11 特性的时候,发现 move constructor 在 test case 里并没有调用,后来发现是因为 RVO 的原因。
RVO介绍:https://en.wikipedia.org/wiki/Copy_elision#Return_value_optimization
如果要关闭 RVO,给 g++ 加上 --no-elide-constructors

Stack Overflow 相关问题:
https://stackoverflow.com/questions/17473753/c11-return-value-optimization-or-move
https://stackoverflow.com/questions/7570152/object-returned-from-function-and-copy-constructor

posted on 2018-05-22 11:35  daghlny  阅读(667)  评论(0编辑  收藏  举报

导航