繁体   English   中英

如何使用一些预处理器 #define 应用生成源文件

[英]How to generate source file with some preprocessor #define applied

我有一些 C/C++ 源文件(.hpp、.cpp),其中包含类似

...
   #define SOME_DEFINE(t)  some_ns::some_type<t>
...

// define is somehow used later in the code

我想要一个修改后的源代码(为了可读性),以便在此文件中替换所有SOME_DEFINE(t)

所以我绝对不愿意应用预处理器编译器步骤——只有这个#define被替换并且只用于这个源文件。

你有几个选择..

  • 运行预处理器并存储输出。 对于 gcc,它是-E以在预处理器之后获得输出。 根据源中使用了多少其他预处理,这可能可行或不可行。
  • 使用正则表达式进行搜索和替换。
  • 使用模板别名template <typename T> SOME_DEFINE = some_ns::some_type<T>; . 然后通过正则表达式使用搜索和替换将SOME_DEFINE(t)替换为SOME_DEFINE<T>
  • 找一个开箱即用的工具。 实际上我不知道一个,尽管工具推荐无论如何都是题外话。 在评论中提到了https://dotat.at/prog/unifdef/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM