web-dev-qa-db-ja.com

なぜ `std :: move`の名前は` std :: move`ですか?

C++ 11 std::move(x)関数は実際には何も移動しません。 r値への単なるキャストです。なぜこれが行われたのですか?これは誤解を招くものではありませんか?

119
Howard Hinnant

B. Stroustrupによって書かれた C++ 11 FAQ からの引用をここに残しておきましょう。これはOPの質問に対する直接的な回答です。

move(x)は、「xを右辺値として扱うことができる」ことを意味します。 move()がrval()と呼ばれていた方がよかったかもしれませんが、今ではmove()が長年使用されています。

ところで、私は本当にFAQ-読む価値があります。

19
podkova