16 Language support library [language.support]

16.2 Common definitions [support.types]

16.2.5 byte type operations [support.types.byteops]

template<class IntType> constexpr byte& operator<<=(byte& b, IntType shift) noexcept;
Effects: Equivalent to: return b = b << shift;
Remarks: This function shall not participate in overload resolution unless is_­integral_­v<IntType> is true.
template<class IntType> constexpr byte operator<<(byte b, IntType shift) noexcept;
Effects: Equivalent to:
return static_cast<byte>(static_cast<unsigned char>(
	                   static_cast<unsigned int>(b) << shift));
Remarks: This function shall not participate in overload resolution unless is_­integral_­v<IntType> is true.
template<class IntType> constexpr byte& operator>>=(byte& b, IntType shift) noexcept;
Effects: Equivalent to: return b >> shift;
Remarks: This function shall not participate in overload resolution unless is_­integral_­v<IntType> is true.
template<class IntType> constexpr byte operator>>(byte b, IntType shift) noexcept;
Effects: Equivalent to:
return static_cast<byte>(static_cast<unsigned char>(
	                   static_cast<unsigned int>(b) >> shift));
Remarks: This function shall not participate in overload resolution unless is_­integral_­v<IntType> is true.
constexpr byte& operator|=(byte& l, byte r) noexcept;
Effects: Equivalent to: return l = l | r;
constexpr byte operator|(byte l, byte r) noexcept;
Effects: Equivalent to:
return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(l) |
                                                    static_cast<unsigned int>(r)));
constexpr byte& operator&=(byte& l, byte r) noexcept;
Effects: Equivalent to: return l = l & r;
constexpr byte operator&(byte l, byte r) noexcept;
Effects: Equivalent to:
return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(l) &
                                                    static_cast<unsigned int>(r)));
constexpr byte& operator^=(byte& l, byte r) noexcept;
Effects: Equivalent to: return l = l ^ r;
constexpr byte operator^(byte l, byte r) noexcept;
Effects: Equivalent to:
return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(l) ^
                                                    static_cast<unsigned int>(r)));
constexpr byte operator~(byte b) noexcept;
Effects: Equivalent to:
return static_cast<byte>(static_cast<unsigned char>(
	                   ~static_cast<unsigned int>(b)));
template<class IntType> constexpr IntType to_integer(byte b) noexcept;
Effects: Equivalent to: return static_­cast<IntType>(b);
Remarks: This function shall not participate in overload resolution unless is_­integral_­v<IntType> is true.