【发布时间】:2012-07-01 14:45:08
【问题描述】:
我必须在不同的文件中用一些整数 id 写一些常量。例如:
#define MESSAGE_FIRST 0
在其他文件中:
#define MESSAGE_ANOTHER 1
有什么方法可以在编译时自动获取该 id?比如:
#define MESSAGE_AUTO GetNextId()
我不能在这里使用枚举,因为这些指令将在不同的文件中。
谢谢。
附言海合会、Linux
【问题讨论】:
-
该标准没有类似 __COUNTER__(类似于 __LINE__)AFAIK 的内容。 p.s.在我自己的预处理器中,我有这个。
-
我想不出除了外部代码生成之外的任何方法。但也许如果您对您要解决的实际问题进行更全面的描述,我们可以为您提供更好的解决方案。
-
它们必须在不同的文件中吗?或者它们都可以包含一个包含这些值的头文件吗?
-
对这种文件交叉编译时计数器的需求听起来像是一个设计缺陷。
标签: c++ enums compile-time