Would something like this be suitable? #if __cpp_lib_byte >= 201603 using byte_type = std::byte; #else using byte_type = unsigned char; #endif alignas(T) byte_type rawbytes[sizeof(T)]; // ...
Both forms will work, but the std::byte version might be preferred to ensure that no arithmetic operations are accidentally performed on the values. The desired type-safety would only be enforced on implementations that support std::byte, but if the rest of the code is the same you can be fairly confident there's no arithmetic even when the type is unsigned char. _______________________________________________ Features mailing list [email protected] http://www.open-std.org/mailman/listinfo/features
