C++ の知識を深め、Rvalue の参照を説明する優れた記事を見つけましたhttp://blogs.msdn.com/b/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part -2.aspx (2009 年に発行された、やや古い記事です)。
記事には、エラーになるはずの行がいくつかあります
// original
string&& i = modifiable_lvalue; // Line 26
string&& j = const_lvalue; // Line 27 - ERROR
string&& k = modifiable_rvalue(); // Line 28
string&& l = const_rvalue(); // Line 29 - ERROR
ただし、Visual Studio 2012string&& i = modifiable_lvalue; // Line 26 - ERROR
でもエラーが発生します!!!
エラー C2440: '初期化中': 'std::string' から 'std::string &&' に変換できません
記事によると
変更可能な右辺値参照、 Type&& は、変更可能な左辺値と変更可能な右辺値にバインドすることをいとわない
26行目で正確に発生するはずだったのはどれですか。では、なぜエラーが発生するのですか??
ありがとう !
編集: このトピックに関する非常に興味深い記事が見つかりました: http://web.archive.org/web/20120529225102/http://cpp-next.com/archive/2009/09/move-it-with-rvalue-references /#fn:insertionsort . 将来の読者は役に立つかもしれません。