В С++ 0x мы получаем повышение эффективности в отношении контейнеров с std::move
:
SomeExpensiveType x = /* ... */;
vec.push_back(std::move(x));
Но я не могу найти ничего другого. Я имею в виду что-то вроде этого:
SomeExpensiveType x = vec.back(); // copy!
vec.pop_back(); // argh
Это чаще всего (копия-поп) на адаптере, например stack
. Может ли что-то подобное существовать:
SomeExpensiveType x = vec.move_back(); // move and pop
Чтобы избежать копирования? И это уже существует? Я не мог найти ничего подобного в n3000.
У меня такое чувство, что я пропускаю что-то болезненное (например, ненужность), поэтому я готов к "ru dum".: 3