Posted on 2011-10-25 01:00
魔のkyo 阅读(371)
评论(0) 编辑 收藏 引用
RVO -- return value optimization 返回值优化
NRV -- named return value optimization 具名返回值优化
如果一个对象在函数return时被构造出来
A func(int i)
{
return A(i);
}
int main()
{
A a = func(1);
}
那么它将省去一次复制构造,这是RVO
类似的
A func(int i)
{
A a(i);
return a;
}
int main()
{
A a = func(1);
}
这里的复制构造被省去,就是NRV了
RVO大部分编译器都支持。
NRV要VC++8.0或以上才支持。