У меня очень простой вопрос по C++. Как избежать копирования при возврате объекта?
Вот пример:
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;
}
Насколько я понимаю, как работает C++, эта функция создаст 2 вектора :локальный (x )и копию x, которая будет возвращена. Есть ли способ избежать копирования? (и я хочу вернуть не указатель на объект, а сам объект)
Каким будет синтаксис этой функции с использованием «семантики перемещения» (, которая была указана в комментариях )?