Even memcpy is not portable to platforms where sizeof(float) != sizeof(int). :)
A rough and incomplete rule of thumb about aliasing rules is that constructs that would be portable given how alignment and size varies from platform to platform are likely to be permitted.