【发布时间】:2013-03-25 11:14:03
【问题描述】:
我正在扩展定义全局 TRUE 和 FALSE 标记的现有组件。我的扩展是在一个新的命名空间“new_namespace”中定义一个枚举“new_enum”,它的值是 TRUE 和 FALSE。由于命名空间冲突,编译器无法编译它。
#define FALSE (0)
#define TRUE (1)
namespace new_namespace {
class new_class {
public :
enum new_enum {
TRUE = (0),
FALSE = (1)
};
};
}
我希望这会得到支持......我错过了什么吗?
最好的问候
【问题讨论】:
-
宏替换后,您的
enum现在是:enum new_enum { (1) = (0), (0) = (1) }; -
另外,您在
enum中的值周围加上括号这一事实让我认为您认为enums 就像宏。那里绝对不需要括号。
标签: c++ macros enums namespaces