Re[2]: Как обойти strict aliasing rule?
От: Mr.Delphist  
Дата: 22.06.16 10:46
Оценка: +1 -2
Здравствуйте, Videoman, Вы писали:

V>Интересно, вопрос вроде по тойже теме, а тут:

V>
V>struct Foo
V>{
V>    union
V>    {
V>        std::uint32_t value[2];

V>        struct 
V>        {
V>            std::uint32_t value32Lo;

V>            std::uint32_t value32Hi;           
V>        };
V>    };
V>};
V>


V>тут такая же проблема с выравниванием, или, из-за того что типы одинаковые, гарантий больше ?


По идее, гарантий никаких. В массиве данные идут подряд (чтобы работала арифметика указателей через sizeof), а в структуре может быть паддинг на 8 байт.

P.S. Товарищи минусующие, не стесняйтесь оставлять свою точку зрения! Ссылки на Стандарт караются плюсом в карму
Отредактировано 08.07.2016 9:01 Mr.Delphist . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.