我需要提交一个赋值,但我只想包含我实际使用的boost头文件(我使用了boost :: shared_ptr和boost :: function)。我尝试手动这样做,但我缺少一些头文件,每次我去添加它们,事实证明我错过了更多。有没有一种快速简便的方法可以确切地找出我真正需要的标题?
由于
答案 0 :(得分:13)
bcp
命令用于此:
NAME
bcp - extract subsets of Boost
概要
bcp --list [options] module-list bcp [options] module-list output-path bcp --report [options] module-list html-file bcp --help
说明
Copies all the files, including dependencies, found in module-list to output-path. output-path must be an existing path.
但是你可能会惊讶地看到这些Boost标头是如何相互依赖的。
答案 1 :(得分:1)
有一个名为bcp
的工具就是这么做的 - 复制出你需要的Boost部分,而不是更多。
答案 2 :(得分:1)
您的问题实际上还有另一种解决方案:预处理器。
您使用的编译器应该只能在gcc和clang上运行预处理器:-E
。鉴于此,您可以预处理包含的两个文件,并将此运行的结果存储到您自己的头文件(每个)中。
添加标题保护,包括已经预处理的标题代替常规提升标题,您就完成了。
当然,两个标题之间可能会有一些重复,一个diff工具可能会帮助你发现它并将其分解为另一个常见的标题......但是对于一项任务,我肯定不会打扰。
您也可以考虑告诉您的老师,因为他没有要求您提供您编译的标准库标题,所以他不应该要求您使用的提升标题。