2011-07-01 16 views
5

C++ 03では、const&トリック(または「最も重要なconst」)を使用して、一時的なライフタイムをリファレンスの有効期間まで延長することができます。私の質問は、C + +の0xでは、この動作はrvalue参照に拡張されますか?例えばauto&& x = someFunction();最も重要なconst&rvalue refs

+0

は、なぜあなたはこれが必要なのでしょうか? 'const auto&'はまったく同じ仕事をします。 – RedX

+0

一時的に変更することができます。 –

+1

実際には、彼らが何をしているか正確な移動コンストラクタを見ればわかります。それらは右辺値にバインドして変更します。 – RedX

答えて

4

[class.temporary]によれば、それがyesでコンパイルされると、一時的な存続期間が延長されます。

+1

rvalue参照の明示的な言及はありませんが、それは "参照"という用語に暗示されていると思います。しかし、私は不安になります。 –

+2

§8.3.2/ 2を参照してください:&を使用して宣言された参照型は左辺参照と呼ばれ、&&を使用して と宣言された参照型は右辺参照と呼ばれます。 (...) が明示的に記載されている場合を除き、それらは意味的に同等であり、一般的に参照と呼ばれます。 – Vitus

0

それは完全にVC10のSP1でコンパイルされます。

int && Get() 
{ 
    return 10; 
} 

const auto&& y=Get(); 
関連する問題