一直以来对 RVO 与 NRVO 以及编译器的优化操作之间的关系都不太分得清。这一次想了两天,查看了若干资料以后,总算弄清楚了。
1.RVO(Return Value Optimization)
先来看一下维基百科上对RVO(return value optimization) 的定义:
"Return value optimization, or simply RVO, is a compiler optimization technique that involves eliminating the temporary object created to hold a function