【问题标题】:Is boost dynamic_bitset header-only是 boost dynamic_bitset 仅标头
【发布时间】:2019-11-03 04:12:15
【问题描述】:

从所有初始迹象来看,boost dynamic_bitset 只是标题。

documentation 意味着它只是标题:

dynamic_bitset 类在文件 boost/dynamic_bitset.hpp 中定义。另外,在 boost/dynamic_bitset_fwd.hpp 头文件中有一个 dynamic_bitset 的前向声明。

该库没有出现在Getting Started 文档中的“非仅标头”库列表中:

最后,使用 Boost 1.70.0 的本地系统上的 bootstrap.sh --show-libraries 命令并未将 dynamic_bitset 列为需要单独构建和安装的命令:

The Boost libraries requiring separate building and installation are:
    - atomic
    - chrono
    - container
    - context
    - contract
    - coroutine
    - date_time
    - exception
    - fiber
    - filesystem
    - graph
    - graph_parallel
    - headers
    - iostreams
    - locale
    - log
    - math
    - mpi
    - program_options
    - python
    - random
    - regex
    - serialization
    - stacktrace
    - system
    - test
    - thread
    - timer
    - type_erasure
    - wave

但是,当我使用 bcp --list 列出依赖项以便仅使用此库时,会包含 .cpp 文件:

CAUTION: don't know how to trace depenencies through macro: " <memory>" in file: boost/exception/exception.hpp
CAUTION: don't know how to trace depenencies through macro: "PP1" in file: boost/type_traits/detail/is_function_ptr_helper.hpp
CAUTION: don't know how to trace depenencies through macro: "PP1" in file: boost/type_traits/detail/is_function_ptr_helper.hpp
CAUTION: don't know how to trace depenencies through macro: "PP1" in file: boost/type_traits/detail/is_function_ptr_helper.hpp
CAUTION: don't know how to trace depenencies through macro: "PP1" in file: boost/type_traits/detail/is_function_ptr_tester.hpp
CAUTION: don't know how to trace depenencies through macro: "PP2" in file: boost/type_traits/detail/is_function_ptr_tester.hpp
CAUTION: don't know how to trace depenencies through macro: "PP3" in file: boost/type_traits/detail/is_function_ptr_tester.hpp
CAUTION: don't know how to trace depenencies through macro: "PPI" in file: boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
CAUTION: don't know how to trace depenencies through macro: "PPI" in file: boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
CAUTION: don't know how to trace depenencies through macro: "PPI" in file: boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
CAUTION: don't know how to trace depenencies through macro: "PPI" in file: boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
CAUTION: don't know how to trace depenencies through macro: "PPI" in file: boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
CAUTION: don't know how to trace depenencies through macro: "PPI" in file: boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
CAUTION: don't know how to trace depenencies through macro: "BOOST_TYPE_INDEX_USER_TYPEINDEX" in file: boost/type_index.hpp
CAUTION: don't know how to trace depenencies through macro: " <memory>" in file: boost/exception/detail/shared_ptr.hpp
CAUTION: dependent file libs/filesystem/v2 does not exist.
   Found while scanning file boost/filesystem.hpp
CAUTION: dependent file libs/filesystem/v3 does not exist.
   Found while scanning file boost/filesystem.hpp
boost/config/compiler/vacpp.hpp
boost/config/compiler/xlcpp.hpp
boost/config/compiler/xlcpp_zos.hpp
boost/config/stdlib/libcpp.hpp
boost/config/stdlib/libstdcpp3.hpp
boost/config/stdlib/vacpp.hpp
boost/config/stdlib/xlcpp_zos.hpp
boost/predef/language/stdcpp.h
boost/predef/library/std/stdcpp3.h
boost/predef/library/std/vacpp.h
boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
boost/test/impl/cpp_main.ipp
libs/chrono/src/chrono.cpp
libs/chrono/src/process_cpu_clocks.cpp
libs/chrono/src/thread_clock.cpp
libs/dynamic_bitset/example/example1.cpp
libs/dynamic_bitset/example/example2.cpp
libs/dynamic_bitset/example/example3.cpp
libs/dynamic_bitset/example/timing_tests.cpp
libs/dynamic_bitset/test/dyn_bitset_unit_tests1.cpp
libs/dynamic_bitset/test/dyn_bitset_unit_tests2.cpp
libs/dynamic_bitset/test/dyn_bitset_unit_tests3.cpp
libs/dynamic_bitset/test/dyn_bitset_unit_tests4.cpp
libs/dynamic_bitset/test/dyn_bitset_unit_tests5.cpp
libs/dynamic_bitset/test/test_ambiguous_set.cpp
libs/dynamic_bitset/test/test_lowest_bit.cpp
libs/filesystem/src/codecvt_error_category.cpp
libs/filesystem/src/operations.cpp
libs/filesystem/src/path.cpp
libs/filesystem/src/path_traits.cpp
libs/filesystem/src/portability.cpp
libs/filesystem/src/unique_path.cpp
libs/filesystem/src/utf8_codecvt_facet.cpp
libs/filesystem/src/windows_file_codecvt.cpp
libs/serialization/src/archive_exception.cpp
libs/serialization/src/basic_archive.cpp
libs/serialization/src/basic_iarchive.cpp
libs/serialization/src/basic_iserializer.cpp
libs/serialization/src/basic_oarchive.cpp
libs/serialization/src/basic_oserializer.cpp
libs/serialization/src/basic_pointer_iserializer.cpp
libs/serialization/src/basic_pointer_oserializer.cpp
libs/serialization/src/basic_serializer_map.cpp
libs/serialization/src/basic_text_iprimitive.cpp
libs/serialization/src/basic_text_oprimitive.cpp
libs/serialization/src/basic_text_wiprimitive.cpp
libs/serialization/src/basic_text_woprimitive.cpp
libs/serialization/src/basic_xml_archive.cpp
libs/serialization/src/binary_iarchive.cpp
libs/serialization/src/binary_oarchive.cpp
libs/serialization/src/binary_wiarchive.cpp
libs/serialization/src/binary_woarchive.cpp
libs/serialization/src/codecvt_null.cpp
libs/serialization/src/extended_type_info.cpp
libs/serialization/src/extended_type_info_no_rtti.cpp
libs/serialization/src/extended_type_info_typeid.cpp
libs/serialization/src/polymorphic_binary_iarchive.cpp
libs/serialization/src/polymorphic_binary_oarchive.cpp
libs/serialization/src/polymorphic_iarchive.cpp
libs/serialization/src/polymorphic_oarchive.cpp
libs/serialization/src/polymorphic_text_iarchive.cpp
libs/serialization/src/polymorphic_text_oarchive.cpp
libs/serialization/src/polymorphic_text_wiarchive.cpp
libs/serialization/src/polymorphic_text_woarchive.cpp
libs/serialization/src/polymorphic_xml_iarchive.cpp
libs/serialization/src/polymorphic_xml_oarchive.cpp
libs/serialization/src/polymorphic_xml_wiarchive.cpp
libs/serialization/src/polymorphic_xml_woarchive.cpp
libs/serialization/src/stl_port.cpp
libs/serialization/src/text_iarchive.cpp
libs/serialization/src/text_oarchive.cpp
libs/serialization/src/text_wiarchive.cpp
libs/serialization/src/text_woarchive.cpp
libs/serialization/src/utf8_codecvt_facet.cpp
libs/serialization/src/void_cast.cpp
libs/serialization/src/xml_archive_exception.cpp
libs/serialization/src/xml_grammar.cpp
libs/serialization/src/xml_iarchive.cpp
libs/serialization/src/xml_oarchive.cpp
libs/serialization/src/xml_wgrammar.cpp
libs/serialization/src/xml_wiarchive.cpp
libs/serialization/src/xml_woarchive.cpp
libs/system/src/error_code.cpp
libs/test/src/compiler_log_formatter.cpp
libs/test/src/cpp_main.cpp
libs/test/src/debug.cpp
libs/test/src/decorator.cpp
libs/test/src/execution_monitor.cpp
libs/test/src/framework.cpp
libs/test/src/junit_log_formatter.cpp
libs/test/src/plain_report_formatter.cpp
libs/test/src/progress_monitor.cpp
libs/test/src/results_collector.cpp
libs/test/src/results_reporter.cpp
libs/test/src/test_framework_init_observer.cpp
libs/test/src/test_main.cpp
libs/test/src/test_tools.cpp
libs/test/src/test_tree.cpp
libs/test/src/unit_test_log.cpp
libs/test/src/unit_test_main.cpp
libs/test/src/unit_test_monitor.cpp
libs/test/src/unit_test_parameters.cpp
libs/test/src/xml_log_formatter.cpp
libs/test/src/xml_report_formatter.cpp
libs/timer/src/auto_timers_construction.cpp
libs/timer/src/cpu_timer.cpp

因此我得出结论,bcp 副本不会只包含头文件。

Boost dynamic_bitset 真的只有标头吗?如果是,我如何在我的项目中仅包含相关标头?

【问题讨论】:

    标签: c++ boost boost-build boost-dynamic-bitset


    【解决方案1】:

    来自文档:

    需要注意的是,实际上 bcp 可以产生一个相当“胖”的依赖列表,原因包括:

    • 它首先搜索库名称,因此使用“regex”作为名称将为您提供 libs/regex 目录中的所有内容以及依赖的所有内容。这可能是一个很长的列表,因为所有正则表达式测试和示例程序都将被扫描以查找它们的依赖项。如果您想要一个更精简的列表,请尝试使用您实际包含的标头名称,或使用 --scan 选项扫描您的源代码。

    • ...

    因此,您将获得一个庞大的依赖项列表,因为搜索包括测试和示例,这些测试和示例本身不是仅标题,并且具有更多的非仅标题依赖项。

    Boost dynamic_bitset 真的只有标头吗

    我认为没有理由怀疑这一点。

    如果是这样,我如何在我的项目中只包含相关的标头?

    根据引用的建议,您可以尝试:bcp --list boost/dynamic_bitset.hpp 以获得更精简的列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 2017-01-14
      • 2015-09-09
      • 1970-01-01
      相关资源
      最近更新 更多