加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 命名RVO的可笑性?

发布时间:2020-12-16 10:17:23 所属栏目:百科 来源:网络整理
导读:我有一个看起来像这样的函数: // Fetch 1 MB of datavoid GetData(std::vectorchar outData); 1MB是夸大的,但我只是想说明最好避免不必要的副本. 如果我添加这个重载: std::vectorchar GetData(){ std::vectorchar result; GetData(result); return result
我有一个看起来像这样的函数:

// Fetch 1 MB of data
void GetData(std::vector<char> & outData);

1MB是夸大的,但我只是想说明最好避免不必要的副本.

如果我添加这个重载:

std::vector<char> GetData()
{
    std::vector<char> result;
    GetData(result);
    return result;
}

那么RVO有多大可能性呢?

解决方法

对于最合理的近期编译器(例如,VS 2005或更新版本,gcc 3.4或更新版本),它基本上是肯定的.我只说“最”,因为我没有测试现有的每个编译器.我在过去5年左右看过的每一个新编译器都包含了它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读