拷贝省略与RVO/NRVO优化
请解释拷贝省略、RVO和NRVO。C++17保证了什么?
回答
我还是少年
拷贝省略:编译器省略拷贝/移动构造,直接构造到目标位置。 RVO:返回临时对象。NRVO:返回命名局部对象。 C++17保证:返回临时对象和临时对象初始化时必须省略拷贝。 不能省略:不同路径返回不同对象、返回全局/参数。
请解释拷贝省略、RVO和NRVO。C++17保证了什么?
拷贝省略:编译器省略拷贝/移动构造,直接构造到目标位置。 RVO:返回临时对象。NRVO:返回命名局部对象。 C++17保证:返回临时对象和临时对象初始化时必须省略拷贝。 不能省略:不同路径返回不同对象、返回全局/参数。