This question already has answers here:
What is “rvalue reference for *this”?
(3个答案)
7年前关闭。
在阅读http://en.cppreference.com/w/cpp/language/member_functions时,我遇到了一些以前从未见过的东西:
(3个答案)
7年前关闭。
在阅读http://en.cppreference.com/w/cpp/language/member_functions时,我遇到了一些以前从未见过的东西:
lvalue/rvalue Ref-qualified member functions
。他们的目的是什么? 最佳答案
只需在下面阅读:
例
#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
,则编译器将查找&-qualified函数;如果调用者对象是rvalue
,则将查找&&-qualified函数。09-27 11:39