带有Boost.Preprocessor的X-Macros?
从我关于附加到CPP宏的问题中分离出来:
有没有人在这里使用Boost.Preprocessor库的数据类型来实现类似X-macro的东西?
没有找到相关结果
已邀请:
1 个回复
哩翔购
大写名称是包含int的定义,小写名称是我在其他地方定义的类。 然后,我可以将此序列与一些Boost预处理器结合使用,为我生成各种代码。例如,要获得类的前向声明,我可以这样做:
要运行时编译时间映射,我生成一系列case语句,如下所示:
整个代码涉及的内容远不止这些,但是这仍然可以让您了解如何使用Boost预处理器生成代码。在我的示例中,我可以通过简单地更新序列来快速轻松地为类添加序列化支持。 请注意,使用Boost预处理器不会生成非常易读的代码,因此我尝试使每个宏使用的宏尽可能简单。如果有人在这个问题上找到更优雅的解决方案,我也不会感到惊讶。这就是我想出的个人项目,我不介意额外的复杂性。