我有一個代碼,必須處理rvalued stl容器。 我的問題是:爲什麼從rvalued-STL容器返回一個元素,就像在成員函數:爲什麼來自rvalued-stl-container的元素獲取器返回左值?
vector<int>{1}.front()
回報左值和右值不? Standard指定rvalue對象的成員是右值。我知道我可以用std::move
顯式移動返回的元素。但是,當返回值顯示右值時,具有左值返回類型的邏輯是什麼?
如果你會用這樣的表達一些valuness,重載函數的參數,錯超載將被選中,調用的函數會得到一個左值引用(不久將成爲懸掛)。
簡單,因爲沒有右值重載的memberfunctions,如'T &&前面()&& {返回移動(前()); }' – Xeo
因此,比這是STD缺陷等待rvalue-for-this功能被執行? –
我不知道,如果這真的算作是標準的缺陷,但你可以嘗試藏漢在http://isocpp.org郵件列表的報告。 – Xeo