30-10-2023, 12:52 PM
A3-9-1 forbids the use of char (and a recent question clarifies that it's intended for signed/unsigned char).
However, how can we create storage in that case, since we don't have std::byte until C++17? We could use `std::uint8_t`, but that's not the type that is used in the Standard, and could potentially not be identical to "unsigned char" depending on platform.
Example use case:
However, how can we create storage in that case, since we don't have std::byte until C++17? We could use `std::uint8_t`, but that's not the type that is used in the Standard, and could potentially not be identical to "unsigned char" depending on platform.
Example use case:
Code:
alignas(T) unsigned char data[sizeof(T)];
T* p = new (data) T();