c++ seems to want some casts in the float representation-access macros