std::move
C++11 では、値をコンテナーに移動 (破壊的にコピー) したいときに を使用することで、効率を高めることができます。
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