C ++ 11では、値で返すのは正しいとよく言わstd::vector
れます。
C ++ 03では、RVOがコピーを最適化する必要があるため、これはほとんど当てはまりました。しかし、それはほとんどの開発者を怖がらせるはずです。
- C ++ 11では、返された
std::vector
ローカル変数は常に移動されますか? - そのベクトルがローカル変数自体ではなくローカル変数のメンバーである場合はどうなりますか?
- 明らかに、グローバル変数を返すことは移動されません。他にどのような場合に移動されませんか?