c++ - 有没有办法在编译时使用宏从其他地方向枚举添加额外的值?

标签 c++ enums macros

我们使用一个大枚举来传递消息,我们的代码库中有一些可选部分使用特定消息,如果要编译这些部分,实际上只需要将这些消息添加到枚举中。有没有办法定义一个可以执行此操作或类似操作的宏?我希望能够添加 REGISTER_MSG(MESSAGE_NAME);到可选代码中文件的开头。我想真正的问题是宏只替换了它们所写位置的代码。

最佳答案

确实,您不能让宏修改其他编译单元中的代码。所有编译单元的枚举都应该相同。

(我可能不会使用具有自动分配值的枚举来识别协议(protocol)中的消息,顺便说一句。)

关于c++ - 有没有办法在编译时使用宏从其他地方向枚举添加额外的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1267019/

相关文章:

保存整数值的 C++ 字符数组

Java - 编译器错误 - 类中定义的枚举不能用于同一类中的泛型替换

c - 如何在我的结构中使用类型定义的枚举?

visual-studio-2015 - 我可以在 Visual Studio 2012/2013/2015/2017/2019 中录制/播放宏吗?

c++ - 来自宏的警告

macros - 是否可以使用 Rust 宏以程序方式声明变量?

c++ - 给另一个 vector 内存的 std::vector 所有权?

c++ - 没有合适的用户定义转换

c++ - 如何从用户输入修改 C++ 代码

generics - 如何从 kotlin 中的枚举类和字符串获取原始类型的枚举值