Const への右辺値参照: 実践的な観点
const (const Foo&&) への右辺値参照には何の有用性もないと一般に信じられていますが、ドラフト C 0x で実証されているように、これらは実際に実用的なアプリケーションです。
C 0x ドラフトでは、他の ref(T&) および cref(const T&) 関数への右辺値の望ましくないバインディングを防ぐために、さまざまなインスタンスでこのような参照が採用されています。これらの関数は、左辺値 (オブジェクトへの参照) のみを受け入れ、右辺値 (一時値への参照) が誤ってバインドされないように const への右辺値参照を受け入れるように特別に設計されています。
最近、公式標準 N3290 (非公開) をレビューしました。アクセス可能)、20.8 Function オブジェクト [function.objects]/p2:
template で次の行を発見しました。 void ref(const T&&) = delete;
テンプレート
C 11 以降の最新のドラフトである N3485 (公開されている) をさらに調査したところ、20.8 関数オブジェクト [function.objects]/p2 でこれらの行が存続していることが確認されました。 .
これらの例は、特定のシナリオ、特に正しい動作を保証する場合における const への右辺値参照の有用性を示しています。関数のオーバーロードを防止し、右辺値の意図しないバインドを防ぎます。
以上が`const Foo&&` 右辺値参照はどのような場合に役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。