是提升 dynamic_bitset header-only
Is boost dynamic_bitset header-only
根据所有初步迹象,boost dynamic_bitset 只是 header。
documentation表示它只是header:
The class dynamic_bitset is defined in the header boost/dynamic_bitset.hpp. Also, there is a forward declaration for dynamic_bitset in the header boost/dynamic_bitset_fwd.hpp.
库没有出现在Getting Started文档的"non header-only"库列表中:
最后,bootstrap.sh --show-libraries
在我的本地系统上使用 Boost 1.70.0 的命令没有将 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
副本不会只包含 header 个文件。
Boost dynamic_bitset
真的是 header-only 吗?如果是,我如何在我的项目中只包含相关的 header?
来自文档:
It should be noted that in practice bcp can produce a rather "fat" list of dependencies, reasons for this include:
It searches for library names first, so using "regex" as a name will give you everything in the libs/regex directory and everything that depends on. This can be a long list as all the regex test and example programs will get scanned for their dependencies. If you want a more minimal list, then try using the names of the headers you are actually including, or use the --scan option to scan your source code.
...
因此,您得到了一个庞大的依赖项列表,因为搜索包括本身不是 header-only 的测试和示例,并且还有更多非 header-only 依赖项。
Is Boost dynamic_bitset really header-only
我认为没有理由怀疑这一点。
if so, how do I include only the relevant headers in my project?
根据引用的建议,您可以改为尝试:bcp --list boost/dynamic_bitset.hpp
以获得更精简的列表。
根据所有初步迹象,boost dynamic_bitset 只是 header。
documentation表示它只是header:
The class dynamic_bitset is defined in the header boost/dynamic_bitset.hpp. Also, there is a forward declaration for dynamic_bitset in the header boost/dynamic_bitset_fwd.hpp.
库没有出现在Getting Started文档的"non header-only"库列表中:
最后,bootstrap.sh --show-libraries
在我的本地系统上使用 Boost 1.70.0 的命令没有将 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
副本不会只包含 header 个文件。
Boost dynamic_bitset
真的是 header-only 吗?如果是,我如何在我的项目中只包含相关的 header?
来自文档:
It should be noted that in practice bcp can produce a rather "fat" list of dependencies, reasons for this include:
It searches for library names first, so using "regex" as a name will give you everything in the libs/regex directory and everything that depends on. This can be a long list as all the regex test and example programs will get scanned for their dependencies. If you want a more minimal list, then try using the names of the headers you are actually including, or use the --scan option to scan your source code.
...
因此,您得到了一个庞大的依赖项列表,因为搜索包括本身不是 header-only 的测试和示例,并且还有更多非 header-only 依赖项。
Is Boost dynamic_bitset really header-only
我认为没有理由怀疑这一点。
if so, how do I include only the relevant headers in my project?
根据引用的建议,您可以改为尝试:bcp --list boost/dynamic_bitset.hpp
以获得更精简的列表。