由于std::byte
根据定义不是整数类型,因此以下片段格式不正确:
enum class foo : std::byte
{
bar = 1,
baz = 2
};
C ++ 17中是否有办法做与此相同的事情?
编辑:我不是要解决任何特定问题。显然enum class whatever : unsigned char
会这样做。但是,我期待std::byte
更灵活一点,并想知道这是否可行。
答案 0 :(得分:8)
std::byte
defined by the standard为enum class
。因此,它具有基础类型(unsigned char
)。因此,您可以创建具有相同基础类型的枚举:
enum class foo : std::underlying_type_t<std::byte>
{...};
答案 1 :(得分:3)
您可以改用unsigned char
或uint8_t
。