【发布时间】:2016-01-29 07:55:53
【问题描述】:
我希望仅在我的 C++ 代码中扩展宏。 我知道 -E 选项仅运行预处理器,但我不是在寻找完整的预处理输出。我想要的只是一个扩展了所有宏的 C++ 代码。
我需要将此代码提交给不懂宏的分析器。但是预处理代码会破坏目的,因为它会在代码中添加大量第三方代码(通过包含文件)。
【问题讨论】:
-
为什么不能使用
-E开关?或使用cpp src_file。 -
我遇到了同样的问题,但从未找到解决方案,现在我将宏的大部分工作委托给外部工具 (Cmake),这样我就有了不需要扩展的最小宏调试。你最好的选择是拥有包含文件非常少的代码(例如使用 Pimpl idiom 或纯虚拟类大大减少了包含的数量)。我认为如果您将鼠标放在某些 IDES 上,它只会显示扩展宏
-
@cad 这将剥离 cmets 并评估所有
#include和#if指令。 -
你也需要保留
#ifdefs吗?
标签: c++ macros c-preprocessor