I don’t think that casting a range of bits as some other arbitrary type “is a bug nobody sees coming”.

C++ compilers also warn you that this is likely an issue and will fail to compile if configured to do so. But it will let you do it if you really want to.

That’s why I love C++

  • wer2@lemmy.zip
    link
    fedilink
    arrow-up
    30
    arrow-down
    1
    ·
    1 day ago

    My issue is C++ will “let me do it”, and by that I mean “you didn’t cast here (which is UB), so I will optimize out a null check later, and then segfault in a random location”

    • vivendi@programming.dev
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      9 hours ago

      Always check your programs on -O0 or pay the price

      Shit gets really fun when you find out your code is a edge case for compiler optimization and should never be optimized away (although this is very very rare for -O2)