LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

Вообще-то да, это UB https://stackoverflow.com/a/48100169

но обычно это работает. Каст через union (как в Си) делать нельзя - в крестах это тоже UB. Можно через memcpy копировать указатель, если выравнивание там правильное.

Еще есть расширение __attribute__((__may_alias__)) https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Type-Attributes.html

Исходная версия SZT, :

Вообще-то да, это UB https://stackoverflow.com/a/48100169

но обычно это работает. Каст через структуру (как в Си) делать нельзя - в крестах это тоже UB. Можно через memcpy копировать указатель, если выравнивание там правильное.

Еще есть расширение __attribute__((__may_alias__)) https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Type-Attributes.html