2015-10-21 28 views

回答

1

它不是有效的,如在不被編譯:

右邊的值不能結合於非const左值參考。

然而,一些編譯器,例如MSVC允許綁定右值到非const左值引用作爲編譯器擴展。

0

它根本不編譯。

非常量引用(T&)不允許綁定到臨時對象。您可以綁定到的臨時或const T&,因爲C++ 11,T&&,雖然:

const SomeClass& obj = SomeClass(); 
SomeClass&& obj = SomeClass(); 
2

這按照標準是無效的。但是,一些編譯器(特別是MSVC)將允許它作爲擴展。

允許分配一個臨時的引用給const,這將導致該臨時被擴展到參考的一生:

{ 
    const SomeClass& some_object = SomeClass(); 
    // more code, some_object is valid 
} //some_object is destructed here 
相關問題