std::byte是一个抽象,它应该提供对C++内存区域的类型安全(r)访问,从新标准17开始.但是,它是根据http://en.cppreference.com/w/cpp这样声明的./ types/byte:
enum class byte : unsigned char {} ;
Run Code Online (Sandbox Code Playgroud)
也就是说,它enum class 没有任何枚举.由于通常的目的enums是提供一组有限的枚举,这似乎有点奇怪.具有私有unsigned char成员的类似乎是更明显的方法.
为什么这样做?
与常规枚举相比,C++枚举结构(类)的大小是否更大?即什么转换为更多字节的指令代码假设它们枚举相同的确切数据?
我正在嵌入式环境中开发,这个问题有点重要.我喜欢使用枚举结构允许的类型安全和范围,但不是代价膨胀.