rvalue

    9熱度

    5回答

    有人可以向我解釋爲什麼這兩個語句有區別嗎? class A{}; const A& a = A(); // correct A& b = A(); // wrong 它說,從臨時型A 的A&類型的非const引用 無效初始化爲什麼const事嗎?

    5熱度

    2回答

    瞭解右值和臨時對象之間的區別花了我相當長的一段時間。但現在75頁的最終狀態委員會草案: 的右值 [...] 是的x值,臨時對象或其子對象,或者是不具有關聯的值目的。 我不敢相信我的眼睛。這一定是一個錯誤,對吧? 要澄清一下,這裏就是我所理解的術語: #include <string> void foo(std::string&& str) { std::cout << str <<

    4熱度

    5回答

    如何判斷給定的參數是否是C++ 03中的右值?我正在寫一些非常通用的代碼,並且如果可能的話需要參考,否則就構建一個新的對象。我可以通過重載以及通過引用來重載,並讓右值返回調用by-value函數嗎? 還是我有一個非常令人作嘔的感覺,這就是爲什麼右值引用是在C++ 0x? 編輯: is_rvalue =(is_reference || is_pointer)!?

    3熱度

    2回答

    GNU gcc 4.3部分支持即將推出的C++ 0x標準:在實現的功能中右值引用。通過右值引用,應該可以移動不可複製的對象或從函數中返回它。 std :: streams是否已經移動通過右值引用還是當前的庫實現缺少一些東西?

    33熱度

    2回答

    §3.10第9節說「非等級rvalues總是具有cv-不合格類型」。這讓我不知道...... int foo() { return 5; } const int bar() { return 5; } void pass_int(int&& i) { std::cout << "rvalue\n"; } void pass_int(const

    4熱度

    5回答

    我不會命名的C++編譯器可以讓您獲取文字的地址,int * p = & 42; 顯然42是一個r值,大多數編譯器拒絕這麼做。 爲什麼編譯器會允許這個?除了用腳踢自己,你還能做什麼?