gpt4 book ai didi

c++ - 如何以编程方式将#include 文件添加到整个库的 C++ 类中

转载 作者:行者123 更新时间:2023-11-30 04:23:43 26 4
gpt4 key购买 nike

(作为前言,我意识到这很古怪而不是标准的 C++ 实践,但它适合我的目的。)

好吧,我有一个 C++ 库,它基本上都是头文件,因为它大量使用模板。几乎每个头文件都包含一个类定义(“ButterworthFilter.h”、“Interpolator.h”等)。我想使这些类中的每一个都有第二个“独立”版本,以便可以轻松地将它们传输到不同的项目而无需使用整个库。所以基本上,手动版本是进入每个头文件,查看#include 依赖项,然后将那些包含的类复制/粘贴到原始文件中#included 的顶部。这样做的问题是,只要对其中一个原始文件进行了更改,就需要更改它,因此无论何时进行更新都应该以编程方式完成。我想用 perl 脚本来做,但那几乎注定要失败。

有没有办法让编译器输出每个依赖文件的全部内容什么的?例如,我可以告诉编译器输出 ButterworthFilter.h 的依赖项,它会检查 #includes,查看它是否依赖于 Filter.h,然后输出所有 Filter.h(递归地加上它的任何依赖项)。更好的是一个程序实际上是用来操作这样的库的。我认为如果有一个工具可以生成隐藏在某个库中的任何有用类的独立版本,那将是非常棒的。

无论如何,我希望这个问题是有道理的,并提前致谢。

最佳答案

您可以使用编译器写入预处理的结果。通常,您使用 -E 选项来获取预处理文件的结果。 proprocessed 文件往往具有原始文件的行号和指示 - 您可能想要删除这些。当然,这也会扩展宏,但除了 include 守卫之外,您希望无论如何都不要使用任何宏...

关于c++ - 如何以编程方式将#include 文件添加到整个库的 C++ 类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com