Which Boost libraries are header-only?

后端 未结 3 1215
时光取名叫无心
时光取名叫无心 2020-11-28 05:17

Which Boost libraries are header-only? And which require building libraries?

Does such a list exist?

相关标签:
3条回答
  • 2020-11-28 05:19

    I think the list above is not accurate even though it's from the official documentation. See https://svn.boost.org/trac10/ticket/13222

    Instead you can query the list of libraries that need to be built:

    >    ./bootstrap.sh --show-libraries
    
       The Boost libraries requiring separate building and installation are:
    
        atomic
        chrono
        container
        context
        coroutine
        date_time
        exception
        fiber
        filesystem
        graph
        graph_parallel
        iostreams
        locale
        log
        math
        metaparse
        mpi
        program_options
        python
        random
        regex
        serialization
        signals
        stacktrace
        system
        test
        thread
        timer
        type_erasure
        wave
    

    Note: On Windows you have to call bootstrap.bat to build "b2" and then call b2 --show-libraries instead.

    0 讨论(0)
  • 2020-11-28 05:21

    The list of libraries that require building is here for Unix-like systems, and here for Windows.

    For the current release, 1.58, both are the same:

    • Boost.Chrono
    • Boost.Context
    • Boost.Filesystem
    • Boost.GraphParallel
    • Boost.IOStreams
    • Boost.Locale
    • Boost.MPI
    • Boost.ProgramOptions
    • Boost.Python
    • Boost.Regex
    • Boost.Serialization
    • Boost.Signals
    • Boost.System
    • Boost.Thread
    • Boost.Timer
    • Boost.Wave

    A few libraries have optional separately-compiled binaries:

    • Boost.DateTime
    • Boost.Graph
    • Boost.Math
    • Boost.Random
    • Boost.Test
    • Boost.Exception

    Note that some libraries may depend on these (for example, Asio depends on System as pointed out in the comments), so you may still need to build something even if the library you want isn't on the list.

    0 讨论(0)
  • 2020-11-28 05:30

    Actually, even ./bootstrap.sh --show-libraries is somewhat incorrect too, because some libraries depend on that listed libraries.

    It is possible to get list of header-only libraries with the Boost BCP tool, launching the tool on every library and removing those linking any binaries. That is what was done in How To Build Header Only Boost.

    For Boost 1.67.0 the resulting list was:

    accumulators
    align
    any
    array
    assert
    assign
    bind
    callable_traits
    circular_buffer
    compatibility
    concept_check
    config
    container_hash
    conversion
    convert
    core
    crc
    detail
    disjoint_sets
    dynamic_bitset
    endian
    foreach
    format
    function
    functional
    function_types
    fusion
    geometry
    gil
    hana
    heap
    hof
    icl
    integer
    interprocess
    intrusive
    io
    iterator
    lambda
    lexical_cast
    locale
    local_function
    logic
    metaparse
    move
    mp11
    mpl
    msm
    multi_array
    multi_index
    optional
    phoenix
    poly_collection
    polygon
    predef
    preprocessor
    property_tree
    proto
    ptr_container
    qvm
    ratio
    rational
    scope_exit
    signals2
    smart_ptr
    sort
    static_assert
    throw_exception
    tokenizer
    tti
    tuple
    type_index
    typeof
    type_traits
    units
    unordered
    utility
    uuid
    variant
    vmd
    winapi
    xpressive
    
    0 讨论(0)
提交回复
热议问题