【发布时间】:2023-03-25 07:21:01
【问题描述】:
我有一个看起来像这样的函数:
// 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 参与的可能性有多大?
【问题讨论】:
-
你可以欺骗编译器这样做,通过返回定义操作符的代理对象到向量引用类型.ymmv
标签: c++ return-value-optimization