punning из одной сишной структуры в другую без UB и с минимальным оверхедом. sizeofы совпадают, по типу struct sockaddr из BSD сокетов. Достаточно ли после reinterpret_cast дёрнуть memmove на себя, или там placement new? Или всё же обязательно выделять под вторую структуру отдельный storage?
здесь вряд ли остались те кто знает 03
>с минимальным оверхедом вот под этим вы что понимаете?
В идеале чтобы древние компиляторы смогли из этого сгенерировать машинный код с минимумом операций вроде копирования из одного адреса памяти в другой.
- fno-strict-aliasing
Но может быть хуже чем потенциальный убец)
короче фиксируйте какойто компилятор пишите по его abi гарантиям
Обсуждают сегодня