Виждал съм много дискусии относно използването на 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
тук може да избегне копие на върнатия вектор, особено когато размерът на вектора е много голям. Моля, поправете ме, ако греша. Много благодаря!