这是发生冲突的一小段代码。有什么方法可以正确解决这个问题吗?
#define DEBUG 0
enum class TypeEnum : int
{
DEBUG = 0,
INFO = 1
};
Run Code Online (Sandbox Code Playgroud)
这是预处理器的本质。以 开头的行#是对预处理器的命令。#define是一个定义文本替换的命令,它将在预处理时重写您的代码。在这种情况下, 的所有实例都DEBUG将替换为0,因此代码变为:
enum class TypeEnum : int
{
0 = 0,
INFO = 1
};
Run Code Online (Sandbox Code Playgroud)
这当然是没有意义的。