У меня есть очень простой вопрос в С++. Как избежать копирования при возврате объекта?
Вот пример:
std::vector<unsigned int> test(const unsigned int n)
{
std::vector<unsigned int> x;
for (unsigned int i = 0; i < n; ++i) {
x.push_back(i);
}
return x;
}
Как я понимаю, как работает С++, эта функция создаст 2 вектора: локальный (x) и копию x, которая будет возвращена. Есть ли способ избежать копирования? (и я не хочу возвращать указатель на объект, но сам объект)
Большое спасибо.
EDIT: дополнительный вопрос в соответствии с первыми ответами: какой будет синтаксис этой функции с использованием "семантики перемещения"?