Какой вариант использования для перегрузки функций-членов в ссылочных квалификаторах?

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 предложено ограничить большинство операторов присваивания в стандартной библиотеке целевыми значениями (т.е. добавив&"ссылки на классификаторы для операторов присваивания), ноэто было отклонено, Так что это был потенциальный вариант использования, когда комитет решил не соглашаться с этим. Итак, опять же, что является разумным вариантом использования?

Ответы на вопрос(4)

Ваш ответ на вопрос