【问题标题】:Using Boost unordered_map使用 Boost unordered_map
【发布时间】:2012-11-16 14:49:20
【问题描述】:

我想在我的项目中包含boost::unordered_map 而不下载整个 Boost 包。我该怎么做?

【问题讨论】:

    标签: c++ boost unordered-map


    【解决方案1】:

    使用bcphttp://www.boost.org/doc/libs/1_52_0/tools/bcp/doc/html/index.html

    cd $BOOST_DIR
    bcp unordered_map /tmp/TEST
    

    现在 /tmp/TEST 包含 unordered_map 所需的内容,在我的情况下为 15Mb(而完整的 boost 库为 734Mb)

    【讨论】:

      【解决方案2】:

      您至少需要标头,因为 Boost 包相互依赖。您可能只想选择需要的头文件,但这确实会让人头疼,并且会花费您很多时间。算法是:

      1. 仅包括boost/unordered_map
      2. 虽然预处理器抱怨找不到标头:
        • 添加该标题。
        • 重新编译。

      您最终只会得到必要的标题。但是我看不出这个解决方案有什么好处。

      【讨论】:

      • 看我的回答,不需要所有的体力劳动。此外,它只占用整个库大小的 2%,这一事实很可能被认为是该解决方案的一个优势 :)
      • 好吧,先生,你打我吧。 :) 我不知道存在这样的工具。
      • 无论如何,如果您想采用“手动”方法(获得所需标头的绝对最小集),您最好只运行通过预处理器获取源代码,然后是 egrep '^# [0-9]+ "' SpiritParser.i | cut -d'"' -f2 | sort -u | grep boost 之类的东西。无需反复试验。请注意,不同的编译器标志可能会导致不同的结果头列表。
      猜你喜欢
      • 2011-04-28
      • 2012-05-23
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 2010-11-06
      • 2011-11-10
      相关资源
      最近更新 更多