¿Qué es un caso de uso para sobrecargar funciones miembro en calificadores de referencia?

C ++ 11 hace posible la sobrecarga de funciones miembro basadas en calificadores de referencia:

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

Entiendo cómo funciona esto, pero ¿qué es un caso de uso para ello?

veo queN2819 propuso limitar la mayoría de los operadores de asignación en la biblioteca estándar a los objetivos de valor (es decir, agregar "&"calificadores de referencia para operadores de asignación), peroesto fue rechazado. Así que ese fue un caso de uso potencial donde el comité decidió no ir con él. Entonces, de nuevo, ¿cuál es un caso de uso razonable?

Respuestas a la pregunta(4)

Su respuesta a la pregunta