2 ms·
TBF, I have yet to see a C++ compiler where the union type punning trick doesn't work, there would be a lot of broken code if real-world compilers would change
by flohofwoe 3y ago
TBF, I have yet to see a C++ compiler where the union type punning trick doesn't work, there would be a lot of broken code if real-world compilers would change the current behaviour no matter what the standard says.
Of course now that std::bit_cast exists it's the safe thing to do (but then there's still C code that's compiled in C++ mode which was even recommended by Microsoft because the Visual Studio team couldn't be bothered to keep their C compiler in shape until a little while ago).
- gumby 3y ago> I have yet to see a C++ compiler where the union type punning trick doesn't work The problem isn’t that compilers won’t implement the feature (that would take more work); the problem is that it’s processor-specific. The spec doesn’t mandate many specific bit-ordering layouts (some are, such two’s complement representation being mandated which was just added, &obj == &base, I think nullptr has to be 0, etc) rather than trying to make everything a PDP-11.
- anonymoushn 3y agoIn these cases using bit_cast or memcpy will also "break" though :(
- CamperBob2 3y agoThere would be a lot of broken code if real-world compilers would change the current behaviour no matter what the standard says GCC maintainers: Hold my Jolt