djo*_*end 10 c++ move compiler-optimization move-semantics
struct big_struct{
vector<int> a_vector;
map<string, int> a_map;
};
big_struct make_data(){
big_struct return_this;
// do stuff, build that data, etc
return return_this;
}
int main(){
auto data = make_data();
}
Run Code Online (Sandbox Code Playgroud)
我已经看到移动语义应用于构造函数,但在这段代码中,我想知道大结构是否在返回时完全复制.我甚至不确定它与移动语义有关.C++总是复制这种数据,还是优化?这段代码可以改变或改进吗?
返回矢量或地图的函数怎么样?这张地图/矢量被复制了吗?