Сообщение Re[11]: Когда это наконец станет defined behavior? от 04.05.2023 8:24
Изменено 04.05.2023 8:25 rg45
Re[11]: Когда это наконец станет defined behavior?
Здравствуйте, T4r4sB, Вы писали:
TB>Хаха убираем const в строке 8 и даже продвинутый кланг забоялся делать предположения о КОНСТантном поле структуры
И где тут "хаха"? Читай определение, что такое const object:
https://timsong-cpp.github.io/cppwp/basic.type.qualifier#1.1
После снятия константности с объекта "s", "i" перестал быть подобъектом константного объекта, а значит и сам перестал быть константным объектом. Следователь и пункт, в котором декларируется неопределенное поведение, с этого момента на "i" не распространяется:
https://timsong-cpp.github.io/cppwp/dcl.type.cv#4
TB>Хаха убираем const в строке 8 и даже продвинутый кланг забоялся делать предположения о КОНСТантном поле структуры
И где тут "хаха"? Читай определение, что такое const object:
https://timsong-cpp.github.io/cppwp/basic.type.qualifier#1.1
A const object is an object of type const T or a non-mutable subobject of a const object.
После снятия константности с объекта "s", "i" перестал быть подобъектом константного объекта, а значит и сам перестал быть константным объектом. Следователь и пункт, в котором декларируется неопределенное поведение, с этого момента на "i" не распространяется:
https://timsong-cpp.github.io/cppwp/dcl.type.cv#4
Any attempt to modify ([expr.ass], [expr.post.incr], [expr.pre.incr]) a const object (basic.type.qualifier) during its lifetime ([basic.life]) results in undefined behavior.
Re[11]: Когда это наконец станет defined behavior?
Здравствуйте, T4r4sB, Вы писали:
TB>Хаха убираем const в строке 8 и даже продвинутый кланг забоялся делать предположения о КОНСТантном поле структуры
И где тут "хаха"? Читай определение, что такое const object:
https://timsong-cpp.github.io/cppwp/basic.type.qualifier#1.1
После снятия константности с объекта "s", "i" перестал быть подобъектом константного объекта, а значит и сам перестал быть константным объектом. Следовательно и пункт, в котором декларируется неопределенное поведение, с этого момента на "i" не распространяется:
https://timsong-cpp.github.io/cppwp/dcl.type.cv#4
TB>Хаха убираем const в строке 8 и даже продвинутый кланг забоялся делать предположения о КОНСТантном поле структуры
И где тут "хаха"? Читай определение, что такое const object:
https://timsong-cpp.github.io/cppwp/basic.type.qualifier#1.1
A const object is an object of type const T or a non-mutable subobject of a const object.
После снятия константности с объекта "s", "i" перестал быть подобъектом константного объекта, а значит и сам перестал быть константным объектом. Следовательно и пункт, в котором декларируется неопределенное поведение, с этого момента на "i" не распространяется:
https://timsong-cpp.github.io/cppwp/dcl.type.cv#4
Any attempt to modify ([expr.ass], [expr.post.incr], [expr.pre.incr]) a const object (basic.type.qualifier) during its lifetime ([basic.life]) results in undefined behavior.