See if
__builtin_bit_cast(std::int64_t, a_val)
works on your compiler.
__builtin_bit_cast(std::int64_t, a_val)
works on your compiler.