Часто говорят, что в С++ 11 разумно возвращать std::vector
по значению.
В С++ 03 это было в основном верно, поскольку RVO должен оптимизировать копию. Но это должно отпугнуть большинство разработчиков.
- В С++ 11 всегда будет перемещена локальная переменная
std::vector
? - Что делать, если этот вектор является членом локальной переменной вместо локальной переменной?
- Очевидно, что возвращение глобальной переменной не будет перемещено. Какие другие случаи не будут перемещены?