Давай для начала добъёмся от Александра ЦЕЛИ его таких изысканий. Потом будем обсуждать, как это сделать, и можно ли.
It's undefined behavior to read from the member of the union that wasn't most recently written. Many compilers implement, as a non-standard language extension, the ability to read inactive members of a union.
Ты просто пытаешься преобразовать float в коллекцию байт не смотря ни на что, а это даже делать не нужно, один reinterpret_cast указателя на float -- и всё готово. Дело то не в этом, а в том, зачем это нужно.
никакие проверки на это дело не помогут, потому что юнион юзается как каст между типами, в любом случае придется обратиться к элементу, в который прикастили, но это ub
Обсуждают сегодня