C++ Logo

sg10

Advanced search

Re: [SG10] Example for __cpp_lib_byte

From: Richard Smith <richard_at_[hidden]>
Date: Fri, 20 Oct 2017 15:22:53 -0700
On 20 October 2017 at 10:46, Jonathan Wakely <cxx_at_[hidden]> wrote:

> 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.


Seems reasonable to me.

Received on 2017-10-21 00:23:17