C プログラミングの領域では、興味深い疑問が生じます。const クラス型への右辺値参照は何らかの目的を果たしますか?最初はそれらが冗長であると考えるかもしれませんが、詳しく調べると、それらが時折役立つことがわかります。
C 0x 言語標準の草案には、それらのアプリケーションの例が示されています。 2 つの関数テンプレート ref と cref は次のように定義されています:
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
これらのオーバーロードは、他の ref(T&) 関数と cref(const T&) 関数が右辺値で呼び出されないようにするという重要な目的を果たします。これは、const への右辺値参照が定義されていない場合に可能です。
更新:
公式の C 標準 (N3290) をさらに調査すると、同じ関数テンプレートが見つかりました。セクション 20.8 [function.objects]/p2 に記載されています。さらに、C 11 以降の最新のドラフト (N3485) にも、これらのテンプレートが同じ場所に含まれています。
以上がC で Const Rvalue 参照が役立つのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。