作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 c++ 中是否可以有枚举的枚举。我必须有类似的东西:
错误类型:
类型1:
类型2:
类型3:
每一个都是整数值。它们应该用于通信协议(protocol)栈。在接收端,接收器必须从接收到的值中解码错误的类型和原因。如果无法使用枚举,最好的方法是什么?
最佳答案
我什至不确定枚举的枚举是什么意思。但是通常的处理方法是定义范围单个枚举:
enum Errors
{
type1 = 0x000,
cause1,
cause2,
type2 = 0x100,
cause3,
cause4,
...
causeMask = 0xFF,
typeMask = 0xFF00
};
或者简单地定义单独的枚举,用单独的词,并使用unsigned
(或 unsigned short
或其他)和一点类型转换不同的原因。
无论采用什么解决方案,我都会将其封装在一个类,因此客户端代码只需要处理 errorType()
和 errorCause()
; errorCause()
甚至可以是错误类型值。 (但在某个地方,你需要明确每个类型值的特化,因为编译器会否则不知道如何将值映射到导致类型。)
关于c++ - 是否有可能在 C++ 中枚举枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15427771/
我是一名优秀的程序员,十分优秀!