Как избежать копирования, когда я вернусь
У меня есть функция, которая возвращает вектор или набор:
set foo() {
set bar;
// create and massage bar
return bar;
}
set afoo = foo();
В этом случае я создаю временную область памяти в функции foo (), а затем назначаю ееafoo
копируя. Я действительно хочу избежать этой копии, любой простой способ сделать это в C ++ 11? Я думаю, что это связано с самой важной вещью.
Хорошо, перейдите к вопросу: если я собираюсь вернуть объект, определенный мной, а не вектор или набор, означает ли это, что я должен определить конструктор перемещения? как это:
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?
}
}
Спасибо!!!