
Сообщение от
Ilot
к чему стоит готовиться если так не делать
К бессмысленной модификации временного объекта, и только лишь.
Кстати, мне кажется компилятор мог бы такое ловить (пока правда не нашел соответствующих ключей).
Зато сразу же теряем возможность перемещения (move) этого объекта: нельзя мувнуть константный временный объект.
Добавлено через 6 часов 21 минуту
Для запрета присваивания во временный объект вместо возврата константного значения из функции можно использовать ещё и такую конструкцию:
C++ |
1
| S& operator=(const S&) & = default; |
|
Такое решение, по крайней мере, не запрещает модификацию временного объекта, если хочется использовать его по месту:
C++ |
1
| use( s.op().modify() ); |
|