Это на самом деле неверно. Это не мешает людям использовать его как lvalue. Это мешает людям использовать его как неконстантный объект. Это две совершенно разные вещи.
но я прочитал, что при возврате по значению из функции имеет смысл квалифицировать возвращаемый тип const для не встроенных типов, например:
const Result operation() {
//..do something..
return Result(..);
}
Я изо всех сил пытаюсь понять преимущества этого, после того, как объект был возвращен, конечно, это выбор вызывающей стороны, чтобы решить, должен ли возвращаемый объект быть const?