Разве здесь не нужен модификатор const? [Дубликат]
На этот вопрос уже есть ответ здесь:
Как возвращаемый объект может быть назначен? 1 ответ"Эффективный C ++«В пункте 3 написано« Используйте const всякий раз, когда это возможно », и он приводит пример:
const Rational operator*(const Rational& lhs,
const Rational& rhs);
чтобы клиенты не могли совершать такие злодеяния:
Rational a, b, c;
...
(a * b) = c; // invoke operator= on the result of a*b!
Но не является ли возвращаемое значение без ссылки на функции ужеRvalue? Так зачем же это делать?