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

日历

<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

公告

联系Email: kyo86.dai[at]gmail[dot]com QQ: 285819504

常用链接

随笔档案

Links

搜索

  •  

最新评论

RVO和NRV

Posted on 2011-10-25 01:00 魔のkyo 阅读(375) 评论(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或以上才支持。
只有注册用户登录后才能发表评论。