在线文档教程
C++
应用 | Utilities

std::byte

STD::字节

Defined in header
enum class byte : unsigned char {} ;(since C++17)

std::byte是实现C++语言定义中指定的字节概念的独特类型。

就像字符类型%28char,,,unsigned char,,,signed char%29可用于访问其他对象占用的原始内存%28对象表示%29,但与这些类型不同,它不是字符类型,也不是算术类型。字节只是位的集合,并且只为其定义了按位逻辑运算符。

非会员职能

性病:至[医]整型

template constexpr IntegerType to_integer(std::byte b) noexcept;(since C++17)

相当于:return IntegerType(b此重载只参与在下列情况下的重载解决方案:std::is_integral_v<IntegerType>是真的。

STD::操作符<<=,运算符>=

template constexpr std::byte& operator<<=(std::byte& b, IntegerType shift) noexcept;(1)(since C++17)
template <class IntegerType> constexpr std::byte& operator>>=(std::byte& b, IntegerType shift) noexcept;(2)(since C++17)

1%29相当于:return b = std::byte(static_cast<unsigned char>(b) << shift此重载只参与在下列情况下的重载解决方案:std::is_integral_v<IntegerType>是真的。

2%29相当于:return b = std::byte(static_cast<unsigned char>(b) >> shift

此重载只参与在下列情况下的重载解决方案:std::is_integral_v<IntegerType>是真的。

STD::操作符<<,Operator>>

template constexpr std::byte operator <<(std::byte b, IntegerType shift) noexcept;(1)(since C++17)
template <class IntegerType> constexpr std::byte operator >>(std::byte b, IntegerType shift) noexcept;(2)(since C++17)

1%29相当于:return std::byte(static_cast<unsigned char>(b) << shift此重载只参与在下列情况下的重载解决方案:std::is_integral_v<IntegerType>是真的。

2%29相当于:return std::byte(static_cast<unsigned char>(b) >> shift

此重载只参与在下列情况下的重载解决方案:std::is_integral_v<IntegerType>是真的。

STD::Operator=,Operator&=,Operator^=

constexpr std::byte& operator|=(std::byte& l, std::byte r) noexcept;(1)(since C++17)
constexpr std::byte& operator&=(std::byte& l, std::byte r) noexcept;(2)(since C++17)
constexpr std::byte& operator^=(std::byte& l, std::byte r) noexcept;(3)(since C++17)

1%29相当于:return l = std::byte(static_cast<unsigned char>(l) | static_cast<unsigned char>(r)...

2%29相当于:return l = std::byte(static_cast<unsigned char>(l) & static_cast<unsigned char>(r)...

3%29相当于:return l = std::byte(static_cast<unsigned char>(l) ^ static_cast<unsigned char>(r)...

接线员,接线员,接线员,接线员,接线员~

constexpr std::byte operator|(std::byte l, std::byte r) noexcept;(1)(since C++17)
constexpr std::byte operator&(std::byte l, std::byte r) noexcept;(2)(since C++17)
constexpr std::byte operator^(std::byte l, std::byte r) noexcept;(3)(since C++17)
constexpr std::byte operator~(std::byte b) noexcept;(4)(since C++17)

1%29相当于:return std::byte(static_cast<unsigned char>(l) | static_cast<unsigned char>(r)...

2%29相当于:return std::byte(static_cast<unsigned char>(l) & static_cast<unsigned char>(r)...

3%29相当于:return std::byte(static_cast<unsigned char>(l) ^ static_cast<unsigned char>(r)...

4%29相当于:return std::byte(~static_cast<unsigned char>(b)

注记

数值n可以将其转换为字节值。std::byte{n},由于C++17放松枚举类初始化规则。

可以将字节转换为数值%28,例如使用以下方法生成对象%29的整数散列std::to_integer...

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/type/字节