Getting around copy semantics in C++

本小妞迷上赌 提交于 2019-12-04 01:36:03

Use emplace_back.

std::vector<A> test;
test.emplace_back();
//test.emplace_back(constructor, parameters);

This way, A will be constructed in-place, so no copy or move will occur.

Edit: To clarify on the comments on the question - No, this will not change from push_back if you pass it a temporary. For instance,

test.emplace_back(A{});

Will, in C++11, cause a temporary A to be constructed, moved and destroyed, as if you used push_back.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!