LINUX.ORG.RU

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

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

- Указатели не конвертируются если нету `standard-layout structs`, в случае с начальной последовательностью в структуре

в изначальном обсуждении нет преобразования указателей (ссылок) — там доступ к неактивному члену юниона.

- Можно использовать неактивные union если выполняется `standard-layout structs` в отношении type и начальная последовательность, именно из за проблемы с `standard-layout structs` ты вводишь generic

да.

Если все верно, то мой пример доказывает что можно преобразовывать struct* и int* если int это первый элемент struct

да.

а значит для int выполняется `standard-layout structs`, а значит он выполняется и для первого type в SDL_Event

нет — int не является структурой даже... для каста не нужно что бы само поле было стандарт-лейаут-структурой — а такое просто применимо если структура содеражащая таковое поле является стандарт-лейаут-структурой.

для не-стандарт-лейаут-структуры такой каст по принципу поинтер-интерконвертибле нельзя делать — будет уб.

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

- Указатели не конвертируются если нету `standard-layout structs`, в случае с начальной последовательностью в структуре

в изначальном обсуждении нет преобразования указателей (ссылок) — там доступ к неактивному члену юниона.

- Можно использовать неактивные union если выполняется `standard-layout structs` в отношении type и начальная последовательность, именно из за проблемы с `standard-layout structs` ты вводишь generic

да.

Если все верно, то мой пример доказывает что можно преобразовывать struct* и int* если int это первый элемент struct

да.

а значит для int выполняется `standard-layout structs`, а значит он выполняется и для первого type в SDL_Event

нет — int не является структурой даже... для каста не нужно что бы само поле было стандарт-лейаут-структурой — а такое просто применимо если структура содеражащая таковое поле является стандарт-лейаут-структурой.