C++ Logo


Advanced search

Subject: Re: [SG10] Example for __cpp_lib_byte
From: Richard Smith (richard_at_[hidden])
Date: 2017-10-20 17:22:53

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.

SG10 list run by sg10-owner@lists.isocpp.org