Wha*_*rld 8 c++ rvalue-reference c++11
我有一个返回向量或集合的函数:
set<int> foo() {
set<int> bar;
// create and massage bar
return bar;
}
set<int> afoo = foo();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我在函数foo()中创建一个临时内存空间,然后afoo通过复制将其分配给它.我真的想避免这个副本,我可以用C++ 11做到这一点吗?我认为这与rvalue有关.
好的,更新问题:如果我要返回自己定义的对象,而不是向量或设置的东西,这是否意味着我应该定义一个移动构造函数?像这样:
class value_to_return {
value_to_return (value_to_return && other) {
// how to write it here? I think std::move is supposed to be used?
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!!
bil*_*llz 18
调制解调器C++编译器将实现:给定一个类型T: