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

Программы на C++. Форум разработчиков
Anonymous
Каков вариант использования перегрузки функций-членов для ссылочных квалификаторов?

Сообщение Anonymous »

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

Подробнее здесь: https://stackoverflow.com/questions/210 ... qualifiers

Вернуться в «C++»