3.9 Types 2 For any object (other than a base-class subobject) of trivial type T, whether or not the object holds a valid value of type T, the underlying bytes (1.7) making up the object can be copied into an array of char or unsigned char.36) If the content of the array of char or unsigned char is copied back into the object, the object shall subsequently hold its original value.
36)By using, for example, the library functions (17.4.1.2) std::memcpy or std::memmove.