首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::byte

Defined in header <cstddef>

?

?

enum class byte : unsigned char {} ;

?

(since C++17)

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

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

非会员职能

性病:至[医]整型

template <class IntegerType> constexpr IntegerType to_integer(std::byte b) noexcept;

?

(since C++17)

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

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

template <class IntegerType> 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 <class IntegerType> 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...

代码语言:txt
复制
 ? cppreference.com

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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com