ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1021152 Топик полностью
LightElf (26.07.2020 18:00, просмотров: 656) ответил fk0 на Вот именно в этом я и пытаюсь убедить -- что сами упакованные структуры нихрена не продуманная "фича", страдающая множественными дефектами и не совместимостью со стандартным языком C/C++. Поэтому её нет в стандарте. Потому, что куда не ткнись, любое нетривиальное использование (кроме непосредственного обращения к членам как к значениям) -- неопределённое поведение. А как код-то писать? Шаг влево-вправо -- "баги".
А я тебе и говорю, что неопределенное поведение упакованных структур - это изначально косяк стандартизаторов языка. Эта фича есть во всех вменяемых компиляторах с лохматых времен. Наверно она нужна зачем-то. И все ее как-то реализуют. Но пуристы в комитете предпочитают прятать голову в песок и изобретают всякую никому не нужную хрень, вместо введения упакованных структур в стандарт. С описанием их конкретного поведения в разных случаях. Например, можно указать что адрес члена 

упакованной структуры всегда имеет тип char* и ниипёт. Берешь адрес поля - едрись дальше сам. Обращаешься как к полю - компилятор разрулит.

Не надо делать мне как лучше, оставьте мне как хорошо