Возвращаемое значение или ссылка на значение?

В новой книге Скотта Мейера он предлагает пример использования ссылочных квалификаторов rvalue, который выглядит примерно так:

class Widget {
private:
    DataType values;

public:
    DataType& data() &  { return values; } 
    DataType  data() && { return std::move(values); } // why DataType?
};

Чтобы:

auto values = makeWidget().data();

двигаться-конструкцииvalues вместо того, чтобы копировать его.

Почему rvalue-ref-qualifieddata() вернутьDataType вместоDataType&&? auto все равно выведетDataType в этом случае (хотяdecltype(auto) не будет - но это не может быть единственной причиной, чтобы предпочесть вернуть значение вместо ravlue ref).это Ответ с высоким рейтингом возвращает ссылку на R-значение, что имеет больше смысла концептуально для меня.

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

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