Информация об изменениях

Сообщение Re[20]: Когда это наконец станет defined behavior? от 29.04.2023 10:34

Изменено 29.04.2023 10:59 rg45

Re[20]: Когда это наконец станет defined behavior?
Здравствуйте, T4r4sB, Вы писали:

TB>Надо стандартизаторам идею подкинуть: а почему б такую ситуацию тоже не назвать UB? Типа передали константную ссылку — значит компилятор вправе предполагать что содержимое не меняется! Это ж сколько можно долей процента выиграть в реальных приложениях! А сколько будет новых непонятных падений!


Сомнительная идея как по мне. Передали константную ссылку — значит, тот участок логики, которому передали ссылку, может только читать данные, но не имеет права менять их. Например, это процедура вывода данных на экран или в файл — ее дело только вывод данных. Но это ж не значит, что эти данные не может менять вообще нигде и никто. Таким образом ссылки выступают как средство разграничения прав доступа — кто-то может и читать, и писать, а кто-то только читать. И это очень даже полезная возможность.
Re[20]: Когда это наконец станет defined behavior?
Здравствуйте, T4r4sB, Вы писали:

TB>Надо стандартизаторам идею подкинуть: а почему б такую ситуацию тоже не назвать UB? Типа передали константную ссылку — значит компилятор вправе предполагать что содержимое не меняется! Это ж сколько можно долей процента выиграть в реальных приложениях! А сколько будет новых непонятных падений!


Другими словами, ты предлагаешь запретить привязывать константные ссылки к неконстантным объектам? Сомнительная идея как по мне. Передали константную ссылку — значит, тот участок логики, которому передали ссылку, может только читать данные, но не имеет права менять их. Например, это процедура вывода данных на экран или в файл — ее дело только вывод данных. Но это ж не значит, что эти данные не может менять вообще нигде и никто. Таким образом ссылки выступают как средство разграничения прав доступа — кто-то может и читать, и писать, а кто-то только читать. И это очень даже полезная возможность.