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

Сообщение Re[59]: Когда это наконец станет defined behavior? от 13.05.2023 18:08

Изменено 13.05.2023 18:09 rg45

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

_>·>... Да не даёт const ровным счётом ничего. Только если либо копия передаётся, либо передача ownership, и это немного помогает в некоторых случаях, но возможностей стрельнуть в ногу всё равно дофига.


_>Например некоторый случай


Компилятор имеет право воспринимать происходящее следующим образом:
В векторе 1 элемент
Вектор не реаллоцировался.
Указатель на элемет в первом cout и во втором cout один и тот же.
И там и там используется константное поле
Я его уже читал при первом cout
Зачем мне его читать еще раз, это же константа!
Вывожу закэшированное значение.


Бред собачий. Не имеет права компилятор так воспринимать происходящее. Вектор неконстантный и он модифицировался. Если какой-то компилятор так делает, то это просто баг, это во-первых. А во-вторых, а какой компилятор так делает — пруфы будут?
Re[59]: Когда это наконец станет defined behavior?
Здравствуйте, kov_serg, Вы писали:

_>·>... Да не даёт const ровным счётом ничего. Только если либо копия передаётся, либо передача ownership, и это немного помогает в некоторых случаях, но возможностей стрельнуть в ногу всё равно дофига.


_>Например некоторый случай


Компилятор имеет право воспринимать происходящее следующим образом:
В векторе 1 элемент
Вектор не реаллоцировался.
Указатель на элемет в первом cout и во втором cout один и тот же.
И там и там используется константное поле
Я его уже читал при первом cout
Зачем мне его читать еще раз, это же константа!
Вывожу закэшированное значение.


Бред собачий. Не имеет права компилятор так воспринимать происходящее. Вектор неконстантный и он модифицировался. Была реллокация или нет — это насрать. Если какой-то компилятор так делает, то это просто баг, это во-первых. А во-вторых, а какой компилятор так делает — пруфы будут?