posts - 225, comments - 62, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

RVO和NRV

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或以上才支持。
只有注册用户登录后才能发表评论。