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 | | (since C++17) |
---|
相当于:return IntegerType(b此重载只参与在下列情况下的重载解决方案:std::is_integral_v<IntegerType>是真的。
STD::操作符<<=,运算符>=
template | (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 | (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。