Const 右辺値参照: 珍しいが便利な概念
const への右辺値参照 (const Foo&&) に実際の用途があるかどうかという問題は、一部のプログラマーを困惑させました。直感的にはそうではないように思えますが、このトピックをさらに深く掘り下げ、潜在的なアプリケーションを検討してみましょう。
C 0x ドラフトによれば、const rvalue 参照は特定のシナリオで有益である可能性があります。たとえば、ドラフト自体で使用されている次のコード スニペットでは、
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
これらのオーバーロードにより、他の ref(T&) 関数と cref(const T&) 関数が右辺値にバインドされなくなり、予期しない動作が防止されます。
公式の C 11 標準 (N3290) を確認すると、同じ宣言がセクション 20.8 関数オブジェクトにあります。 [function.objects]/p2:
template <class T> void ref(const T&&) = delete; template <class T> void cref(const T&&) = delete;
C 11 以降の公開されている最新のドラフト (N3485) にも、同じセクションにこれらの宣言が含まれています。これらの例は、const rvalue 参照が C 言語標準に含めるのに十分有用であるとみなされていることを示しています。それらのユースケースは特殊かもしれませんが、特定のプログラミング状況に価値のある構造を提供します。
以上がConst Rvalue 参照は C で実用的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。