変数が右辺値参照ではない理由
関数 f:
void f(T&&&); // #1 void f(T&); // #2
In の 2 つのオーバーロードを考えます。別の関数 g:
void g(T&& t) { f(t); // calls #2 }
なぜパラメーター t が右辺値であるにもかかわらず、オーバーロード f(T&) は呼び出されますか?
右辺値参照の性質
右辺値参照は、右辺値にのみバインドできる変数です(名前のないオブジェクト)。 T&&t には名前があり、左辺値になります。
型と値の区別
T&& は型右辺値参照です。右辺値参照は右辺値にのみバインドできますが、それ以外の場合は参照型の左辺値です。
特殊なケース
右辺値参照を管理するルール
以上が右辺値参照を渡すときに `f(T&&)` が呼び出されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。