只获得必要的标题

时间:2011-03-15 02:09:12

标签: c++ boost

我需要提交一个赋值,但我只想包含我实际使用的boost头文件(我使用了boost :: shared_ptr和boost :: function)。我尝试手动这样做,但我缺少一些头文件,每次我去添加它们,事实证明我错过了更多。有没有一种快速简便的方法可以确切地找出我真正需要的标题?

由于

3 个答案:

答案 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工具可能会帮助你发现它并将其分解为另一个常见的标题......但是对于一项任务,我肯定不会打扰。

您也可以考虑告诉您的老师,因为他没有要求您提供您编译的标准库标题,所以他不应该要求您使用的提升标题。