【发布时间】:2014-01-29 21:38:51
【问题描述】:
C++11 使得基于引用限定符重载成员函数成为可能:
class Foo {
public:
void f() &; // for when *this is an lvalue
void f() &&; // for when *this is an rvalue
};
Foo obj;
obj.f(); // calls lvalue overload
std::move(obj).f(); // calls rvalue overload
我了解它的工作原理,但它的用例是什么?
我看到N2819 建议将标准库中的大多数赋值运算符限制为左值目标(即,将“&”引用限定符添加到赋值运算符),但 this was rejected。所以这是一个潜在的用例,委员会决定不使用它。那么,什么是合理的用例呢?
【问题讨论】:
标签: c++ c++11 overloading rvalue-reference qualifiers