9
在閱讀http://en.cppreference.com/w/cpp/language/member_functions時,我碰到了一些東西,我之前沒有見過:lvalue/rvalue Ref-qualified member functions
。他們的目的是什麼?Ref-qualified會員功能的用途是什麼?
在閱讀http://en.cppreference.com/w/cpp/language/member_functions時,我碰到了一些東西,我之前沒有見過:lvalue/rvalue Ref-qualified member functions
。他們的目的是什麼?Ref-qualified會員功能的用途是什麼?
只需向下讀下面:
例在重載解析,等級X的非靜態CV-合格成員函數將被視爲需要的類型左值參考一個隱式參數CV-合格X如果一個函數它沒有ref限定符,或者它有左值ref限定符。否則(如果它具有右值REF-限定符)時,它被視爲所以在過載分辨率服用的類型右值引用的隱式參數到CV-合格X.
#include <iostream>
struct S {
void f() & { std::cout << "lvalue\n"; }
void f() &&{ std::cout << "rvalue\n"; }
};
int main(){
S s;
s.f(); // prints "lvalue"
std::move(s).f(); // prints "rvalue"
S().f(); // prints "rvalue"
}
的函數編譯器查找功能& - 如果調用者對象是lvalue
或功能& & - 合格(如果調用者對象是rvalue
),則使用限定功能。
如果所有的不人道標準都以一個清晰而簡潔的例子加以擴充,這個世界將會變得多好! –