由于std::byte根据定义不是整数类型,因此以下片段是不正确的:
enum class foo : std::byte
{
bar = 1,
baz = 2
};
Run Code Online (Sandbox Code Playgroud)
在C++ 17中是否有办法做与此相同的事情?
编辑:我不是要解决任何特定问题.显然enum class whatever : unsigned char会这样做.但是,我希望std::byte能够更加灵活,并且想知道这是否可行.
std::byte是由标准定义为一个enum class.因此,它具有基础类型(of unsigned char).因此,您可以创建具有相同基础类型的枚举:
enum class foo : std::underlying_type_t<std::byte>
{...};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |