为什么 define 与 enum class 冲突?
why does define conflict with enum class?
这里是一小段代码,其中发生了冲突。有什么办法可以正确解决这个问题吗?
#define DEBUG 0
enum class TypeEnum : int
{
DEBUG = 0,
INFO = 1
};
这是预处理器的本质。以 #
开头的行是预处理器的命令。 #define
是定义文本替换的命令,它将在预处理时重写您的代码。在这种情况下,DEBUG
的所有实例将被替换为 0
,因此代码变为:
enum class TypeEnum : int
{
0 = 0,
INFO = 1
};
这当然没有意义。
这里是一小段代码,其中发生了冲突。有什么办法可以正确解决这个问题吗?
#define DEBUG 0
enum class TypeEnum : int
{
DEBUG = 0,
INFO = 1
};
这是预处理器的本质。以 #
开头的行是预处理器的命令。 #define
是定义文本替换的命令,它将在预处理时重写您的代码。在这种情况下,DEBUG
的所有实例将被替换为 0
,因此代码变为:
enum class TypeEnum : int
{
0 = 0,
INFO = 1
};
这当然没有意义。