This is just an instance of fast-and-loose type casting (which is one of the major problems with languages like PHP and JS) in C++, so I don't think your example is saying anything spectacular about C or C++. Same sheep, different wool.
> So I don't look to strongly typed languages as any kind of panacea. You can type silly things like converting a boolean to a 1 even there.
They're not a panacea, but they certain do help. At least in Haskell, such things either involve "unsafe" in the function name or start putting the IO monad all through your code. Those are both things I stand out as "something fishy" to me. That casting in the example would be a red flag for me as well. Casting constants, especially if it's an enum (and you're not in some dark corner of the project dealing with marshalling between languages or the network) is a pretty bad code smell.
> You want good code: hire good, experienced programmers, and make them test their code.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds