我能想到的唯一用例是它更清楚地表达了意图
我认为这是原因之一。
This paper
解释背后的动机
std::byte
并将其用法与
烧焦
:
动机和范围
许多程序需要面向字节的访问
记忆力如今,此类程序必须使用char、signed char或
用于此目的的无符号字符类型。但是,这些类型执行
三重负载。它们不仅用于字节寻址,还用作
算术类型和as字符类型。角色的多样性
打开程序员错误的门,例如意外执行
应视为字节值的内存上的算术运算,以及
程序员和工具都感到困惑。
具有独特的字节类型
通过区分面向字节的内存访问,提高了类型安全性
以字符或整数值形式访问内存。它改进了
可读性。
拥有该类型也会产生代码的意图
读者更清楚(以及用于理解和
转换程序)。它通过移除
程序员意图表达的模糊性,从而增加
分析工具的准确性。
另一个原因是
std::byte
在可在此类型上执行的操作方面受到限制:
与char和unsigned char一样,它可以用来访问原始内存
被其他对象占用(对象表示),但不同于
类型,
它不是字符类型,也不是算术类型
. A.
字节只是位的集合,并且
仅按位逻辑运算符
为其定义
.
这确保了上述文件中提到的额外类型的安全性。