Я видел много дискуссий об использовании std::move
для возвращаемого значения функции (например, this), и я знаю, что в этих случаях это не нужно. Но что, если я хочу использовать семантику std::move
при получении вывода функции, как в приведенных ниже кодах:
std::vector<double> funcA()
{
std::vector<double> out(10000, 0.0);
return out;
}
int main()
{
auto out = std::move(funcA());
return 0;
}
Это хороший вариант использования std::move
? Насколько я понимаю, move
здесь можно избежать копирования возвращаемого вектора, особенно когда размер вектора очень велик. Пожалуйста, поправьте меня, если я ошибаюсь. Большое спасибо!