この質問は、 const 参照の概念と、C の一時オブジェクトの有効期間を延長する機能を中心に展開します。具体的には、通常の参照では許可されないのに、const 参照による右辺値 (一時オブジェクト) の受け渡しが許可される理由を調査します。
提供された例では、
<code class="cpp">void display(const int& a) { cout << a ; }</code>
この関数は次のようになります。 display(5) のようなリテラルで呼び出されます。問題なく。ただし、const キーワードが削除されると失敗します。この動作は、const 参照が一時値の存続期間を、含まれるスコープの終わりまで延長し、その存在を通常の即時スコープを超えて効果的に拡張するために発生します。さらに、この拡張は、通常のローカル変数で発生するコピー構築の追加のオーバーヘッドなしで実現されます。
本質的に、const 参照は一時的な性質を維持しながら右辺値を参照する手段を提供し、高いパフォーマンスを提供します。これらのオブジェクトを操作するための便利なメカニズム。
以上が説明の本質を捉え、質問形式に準拠したタイトルのオプションをいくつか示します。 オプション 1 (より直接的): C で Const 参照が右辺値にバインドできるのはなぜですか? オプティオの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。