Boost was begun by members of the ISO C++ Standard committee Library Working Group to provide free peer-reviewed portable libraries to the C++ community. An additional objective is to establish "existing practice" and provide reference implementations so that the Boost libraries are suitable for eventual standardization.

Components successfully moved into draft ISO Standard C++09 include shared_ptr, regular expressions, function wrappers and binders.

Journal Entries

No entries yet. Link your entries with 'boost' to include this project.


Ratings & Reviews

Community Rating
4.7/5.0

Based on 60 user ratings.

Your Rating

Click to rate this project.

about 1 year ago Avatar
I'm NOT confused

  by phrakture

Contrary to the other review, I actually know what's going on. Boost doesn't "implement the STL". Boost is a set of satellite libraries for C++ development - many of which are *already* accepted into the next C++ standard.

I for one, am a huge proponent of boost.

4 of 4 users found the following review helpful. Was this review helpful to you? |

Links

No links submitted so far. Submit your own links.

News

Edit RSS feeds.

    Version 1.36.0

    New Libraries

    Accumulators: Framework
    for incremental calculation, and collection of statistical accumulators,
    from Eric Niebler.

    Exception:
    A
    library for transporting ... [More] of arbitrary data in exception objects, and transporting
    of exceptions between threads, from Emil Dotchevski.

    Units:
    Zero-overhead dimensional
    analysis and unit/quantity manipulation and conversion, from Matthias Schabel
    and Steven Watanabe

    Unordered:
    Unordered
    associative containers, from Daniel James.

    Updated Libraries

    Asio:

    Added support for serial ports.

    Added support for UNIX domain sockets.

    Added support for raw sockets and ICMP.

    Added wrappers for POSIX stream-oriented file descriptors (excluding
    regular files).

    Added wrappers for Windows stream-oriented HANDLEs
    such as named pipes (requires HANDLEs
    that work with I/O completion ports).

    Added wrappers for Windows random-access HANDLEs
    such as files (requires HANDLEs
    that work with I/O completion ports).

    Added support for reactor-style operations (i.e. they report readiness
    but perform no I/O) using a new null_buffers
    type.

    Added an iterator type for bytewise traversal of buffer sequences.

    Added new read_until() and async_read_until() overloads that take a user-defined
    function object for locating message boundaries.

    Added an experimental two-lock queue (enabled by defining BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that
    may provide better io_service
    scalability across many processors.

    Various fixes, performance improvements, and more complete coverage of
    the custom memory allocation support.

    Assign:
    list_of()
    (and its variants) now has overloaded comparison operators. This allows you
    to write test code such as BOOST_CHECK_EQUAL( my_container, list_of(2)(3)(4)(5)
    );.

    Circular Buffer:

    Default constructor now doesn't allocate memory, and sets the capacity
    of the buffer to 0

    Foreach: BOOST_FOREACH macro for easily iterating
    over the elements of a sequence, from Eric Niebler.

    New BOOST_REVERSE_FOREACH
    macro for iterating over a sequence in reverse.

    Function:

    Improved allocator support, from Emil Dotchevski.

    Hash:
    Minor updates
    and fixes, for more info see the change
    log.

    Interprocess:

    Added anonymous shared memory for UNIX systems.

    Fixed missing move semantics on managed memory classes.

    Added copy_on_write and open_read_only options for shared memory and
    mapped file managed classes.

    shared_ptr is movable
    and supports aliasing.

    Intrusive:

    Added linear<>
    and cache_last<>
    options to singly linked lists.

    Added optimize_multikey<> option to unordered container
    hooks.

    Optimized unordered containers when store_hash
    option is used in the hook.

    Implementation changed to avoid explicit use of try-catch blocks and be compilable with exceptions
    disabled.

    Math:

    Added new non-central Chi-Square, Beta, F and T distributions.

    Added Exponential Integral and Zeta special functions.

    Added Rounding, Truncation, and Unit-in-the-last-place functions.

    Added support for compile time powers of a runtime base.

    Added a few SSE2 based optimisations for the Lanczos approximations.

    MPI:

    Added support for non-blocking operations in Python, from Andreas Klöckner.

    Added support for graph topologies.

    Multi-index Containers:
    Minor
    additions and maintenance fixes. Consult the library release
    notes for further information.

    PtrContainer:
    Support
    for a few more containers, and addition of insert iterators. For details
    see upgrading
    details.

    Spirit:
    Integrated the
    "Classic" Spirit V1.8.x code base with Spirit V2, "The New
    Generation". See Change
    Log.

    Thread:

    New generic lock and
    try_lock functions for
    locking multiple mutexes at once.

    Rvalue reference support for move semantics where the compilers supports
    it.

    A few bugs fixed and missing functions added (including the serious win32
    condition variable bug).

    scoped_try_lock types
    are now backwards-compatible with Boost 1.34.0 and previous releases.

    Support for passing function arguments to the thread function by supplying
    additional arguments to the thread
    constructor.

    Backwards-compatibility overloads added for timed_lock
    and timed_wait functions
    to allow use of xtime
    for timeouts.

    Wave:

    Wave V2.0 is a new major release introducing some breaking API changes,
    preventing it to be used with Boost versions earlier than V1.36.0. Mainly,
    the API and hook interface have been streamlined for more consistency.

    Fixed a couple of bugs, improved regression test system to include testing
    of the preporcessing hooks interface (for details see: Changelog).

    Xpressive:
    Regular
    expressions that can be written as strings or as expression templates, and
    that can refer to each other and themselves recursively with the power of
    context-free grammars, from Eric Niebler.

    skip()
    for specifying which parts of the input sequence to ignore when matching
    it against a regex.

    regex_replace()
    accepts formatter objects and formatter expressions in addition to format
    strings.

    Range-based regex_replace() algorithm.

    Fix crash when semantic actions are placed in look-aheads, look-behinds
    or independent sub-expressions.

    Compilers Tested

    Boost's primary test compilers are:

    GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC

    GCC 4.2.3 on Ubuntu Linux 8.04.1

    HP C/aC B3910B A.06.17 on HP-UX 64-bit

    Visual C 9.0 SP1 beta, 8.0 SP1, and 7.1, all on Windows XP SP-2

    Boost's additional test compilers include:

    GCC 4.2.1 on FreeBSD-7

    GCC 4.1.2 on NetBSD

    HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC

    IBM XL C/C Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40

    Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.1

    Compaq C V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform.

    Sun C 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10.

    On Linux:

    GCC 3.4.3, 4.0.1, 4.2.1, 4.3.0.

    GCC 4.3.0 with C 0x extensions.

    GCC 3.4.6, 4.1.1, 4.2.1 on 64 bit linux.

    Intel C 8.1, 9.0 and 9.1.

    QLogic PathScale(TM) Compiler Suite: Version 3.1

    pgCC 7.2-3 64-bit target on x86-64 Linux

    On Windows:

    Intel 10.1, with Visual C 9 backend.

    Lots of tests on Visual C 7.1, 8.0, 9.0

    Visual C 7.1 with Apache C Standard Library 4.2.x branch.

    Visual C 8.0 with STLport 5.1

    Visual C 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0
    Pocket PC SDK (ARMV4I).

    Borland 5.6.4, 5.8.2, 5.9.3

    64 bit Intel 10.1, with Visual C 9 backend.

    64 bit Visual C 9.

    Comeau C 4.3.10.1 beta 2, with Visual C 9 backend.

    Acknowledgements

    Beman Dawes, Rene
    Rivera, and Daniel James managed this release. [Less]

    Version 1.36.0

    New Libraries

    Accumulators: Framework
    for incremental calculation, and collection of statistical accumulators,
    from Eric Niebler.

    Exception:
    A
    library for transporting ... [More] of arbitrary data in exception objects, and transporting
    of exceptions between threads, from Emil Dotchevski.

    Units:
    Zero-overhead dimensional
    analysis and unit/quantity manipulation and conversion, from Matthias Schabel
    and Steven Watanabe

    Unordered:
    Unordered
    associative containers, from Daniel James.

    Updated Libraries

    Asio:

    Added support for serial ports.

    Added support for UNIX domain sockets.

    Added support for raw sockets and ICMP.

    Added wrappers for POSIX stream-oriented file descriptors (excluding
    regular files).

    Added wrappers for Windows stream-oriented HANDLEs
    such as named pipes (requires HANDLEs
    that work with I/O completion ports).

    Added wrappers for Windows random-access HANDLEs
    such as files (requires HANDLEs
    that work with I/O completion ports).

    Added support for reactor-style operations (i.e. they report readiness
    but perform no I/O) using a new null_buffers
    type.

    Added an iterator type for bytewise traversal of buffer sequences.

    Added new read_until() and async_read_until() overloads that take a user-defined
    function object for locating message boundaries.

    Added an experimental two-lock queue (enabled by defining BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that
    may provide better io_service
    scalability across many processors.

    Various fixes, performance improvements, and more complete coverage of
    the custom memory allocation support.

    Assign:
    list_of()
    (and its variants) now has overloaded comparison operators. This allows you
    to write test code such as BOOST_CHECK_EQUAL( my_container, list_of(2)(3)(4)(5)
    );.

    Foreach: BOOST_FOREACH macro for easily iterating
    over the elements of a sequence, from Eric Niebler.

    New BOOST_REVERSE_FOREACH
    macro for iterating over a sequence in reverse.

    Function:

    Improved allocator support, from Emil Dotchevski.

    Hash:
    Minor updates
    and fixes, for more info see the change
    log.

    Interprocess:

    Added anonymous shared memory for UNIX systems.

    Fixed missing move semantics on managed memory classes.

    Added copy_on_write and open_read_only options for shared memory and
    mapped file managed classes.

    shared_ptr is movable
    and supports aliasing.

    Intrusive:

    Added linear<>
    and cache_last<>
    options to singly linked lists.

    Added optimize_multikey<> option to unordered container
    hooks.

    Optimized unordered containers when store_hash
    option is used in the hook.

    Implementation changed to avoid explicit use of try-catch blocks and be compilable with exceptions
    disabled.

    Math:

    Added new non-central Chi-Square, Beta, F and T distributions.

    Added Exponential Integral and Zeta special functions.

    Added Rounding, Truncation, and Unit-in-the-last-place functions.

    Added support for compile time powers of a runtime base.

    Added a few SSE2 based optimisations for the Lanczos approximations.

    MPI:

    Added support for non-blocking operations in Python, from Andreas Klöckner.

    Added support for graph topologies.

    Multi-index Containers:
    Minor
    additions and maintenance fixes. Consult the library release
    notes for further information.

    PtrContainer:
    Support
    for a few more containers, and addition of insert iterators. For details
    see upgrading
    details.

    Spirit:
    Integrated the
    "Classic" Spirit V1.8.x code base with Spirit V2, "The New
    Generation". See Change
    Log.

    Thread:

    New generic lock and
    try_lock functions for
    locking multiple mutexes at once.

    Rvalue reference support for move semantics where the compilers supports
    it.

    A few bugs fixed and missing functions added (including the serious win32
    condition variable bug).

    scoped_try_lock types
    are now backwards-compatible with Boost 1.34.0 and previous releases.

    Support for passing function arguments to the thread function by supplying
    additional arguments to the thread
    constructor.

    Backwards-compatibility overloads added for timed_lock
    and timed_wait functions
    to allow use of xtime
    for timeouts.

    Wave:

    Wave V2.0 is a new major release introducing some breaking API changes,
    preventing it to be used with Boost versions earlier than V1.36.0. Mainly,
    the API and hook interface have been streamlined for more consistency.

    Fixed a couple of bugs, improved regression test system to include testing
    of the preporcessing hooks interface (for details see: Changelog).

    Xpressive:
    Regular
    expressions that can be written as strings or as expression templates, and
    that can refer to each other and themselves recursively with the power of
    context-free grammars, from Eric Niebler.

    skip()
    for specifying which parts of the input sequence to ignore when matching
    it against a regex.

    regex_replace()
    accepts formatter objects and formatter expressions in addition to format
    strings.

    Range-based regex_replace() algorithm.

    Fix crash when semantic actions are placed in look-aheads, look-behinds
    or independent sub-expressions.

    Compilers Tested

    Boost's primary test compilers are:

    GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC

    GCC 4.2.3 on Ubuntu Linux 8.04.1

    HP C/aC B3910B A.06.17 on HP-UX 64-bit

    Visual C 9.0 SP1 beta, 8.0 SP1, and 7.1, all on Windows XP SP-2

    Boost's additional test compilers include:

    GCC 4.2.1 on FreeBSD-7

    GCC 4.1.2 on NetBSD

    HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC

    IBM XL C/C Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40

    Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.1

    Compaq C V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform.

    Sun C 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10.

    On Linux:

    GCC 3.4.3, 4.0.1, 4.2.1, 4.3.0.

    GCC 4.3.0 with C 0x extensions.

    GCC 3.4.6, 4.1.1, 4.2.1 on 64 bit linux.

    Intel C 8.1, 9.0 and 9.1.

    QLogic PathScale(TM) Compiler Suite: Version 3.1

    pgCC 7.2-3 64-bit target on x86-64 Linux

    On Windows:

    Intel 10.1, with Visual C 9 backend.

    Lots of tests on Visual C 7.1, 8.0, 9.0

    Visual C 7.1 with Apache C Standard Library 4.2.x branch.

    Visual C 8.0 with STLport 5.1

    Visual C 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0
    Pocket PC SDK (ARMV4I).

    Borland 5.6.4, 5.8.2, 5.9.3

    64 bit Intel 10.1, with Visual C 9 backend.

    64 bit Visual C 9.

    Comeau C 4.3.10.1 beta 2, with Visual C 9 backend.

    Acknowledgements

    Beman Dawes, Rene
    Rivera, and Daniel James managed this release. [Less]

    Version 1.36.0

    New Libraries

    Accumulators: Framework
    for incremental calculation, and collection of statistical accumulators,
    from Eric Niebler.

    Exception:
    A
    library for transporting ... [More] of arbitrary data in exception objects, and transporting
    of exceptions between threads, from Emil Dotchevski.

    Units:
    Zero-overhead dimensional
    analysis and unit/quantity manipulation and conversion, from Matthias Schabel
    and Steven Watanabe

    Unordered:
    Unordered
    associative containers, from Daniel James.

    Updated Libraries

    Asio:

    Added support for serial ports.

    Added support for UNIX domain sockets.

    Added support for raw sockets and ICMP.

    Added wrappers for POSIX stream-oriented file descriptors (excluding
    regular files).

    Added wrappers for Windows stream-oriented HANDLEs
    such as named pipes (requires HANDLEs
    that work with I/O completion ports).

    Added wrappers for Windows random-access HANDLEs
    such as files (requires HANDLEs
    that work with I/O completion ports).

    Added support for reactor-style operations (i.e. they report readiness
    but perform no I/O) using a new null_buffers
    type.

    Added an iterator type for bytewise traversal of buffer sequences.

    Added new read_until() and async_read_until() overloads that take a user-defined
    function object for locating message boundaries.

    Added an experimental two-lock queue (enabled by defining BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that
    may provide better io_service
    scalability across many processors.

    Various fixes, performance improvements, and more complete coverage of
    the custom memory allocation support.

    Assign:
    list_of()
    (and its variants) now has overloaded comparison operators. This allows you
    to write test code such as BOOST_CHECK_EQUAL( my_container, list_of(2)(3)(4)(5)
    );.

    Circular Buffer:

    Default constructor now doesn't allocate memory, and sets the capacity
    of the buffer to 0

    Foreach: BOOST_FOREACH macro for easily iterating
    over the elements of a sequence, from Eric Niebler.

    New BOOST_REVERSE_FOREACH
    macro for iterating over a sequence in reverse.

    Function:

    Improved allocator support, from Emil Dotchevski.

    Hash:
    Minor updates
    and fixes, for more info see the change
    log.

    Interprocess:

    Added anonymous shared memory for UNIX systems.

    Fixed missing move semantics on managed memory classes.

    Added copy_on_write and open_read_only options for shared memory and
    mapped file managed classes.

    shared_ptr is movable
    and supports aliasing.

    Intrusive:

    Added linear<>
    and cache_last<>
    options to singly linked lists.

    Added optimize_multikey<> option to unordered container
    hooks.

    Optimized unordered containers when store_hash
    option is used in the hook.

    Implementation changed to avoid explicit use of try-catch blocks and be compilable with exceptions
    disabled.

    Math:

    Added new non-central Chi-Square, Beta, F and T distributions.

    Added Exponential Integral and Zeta special functions.

    Added Rounding, Truncation, and Unit-in-the-last-place functions.

    Added support for compile time powers of a runtime base.

    Added a few SSE2 based optimisations for the Lanczos approximations.

    MPI:

    Added support for non-blocking operations in Python, from Andreas Klöckner.

    Added support for graph topologies.

    Multi-index Containers:
    Minor
    additions and maintenance fixes. Consult the library release
    notes for further information.

    PtrContainer:
    Support
    for a few more containers, and addition of insert iterators. For details
    see upgrading
    details.

    Spirit:
    Integrated the
    "Classic" Spirit V1.8.x code base with Spirit V2, "The New
    Generation". See Change
    Log.

    Thread:

    New generic lock and
    try_lock functions for
    locking multiple mutexes at once.

    Rvalue reference support for move semantics where the compilers supports
    it.

    A few bugs fixed and missing functions added (including the serious win32
    condition variable bug).

    scoped_try_lock types
    are now backwards-compatible with Boost 1.34.0 and previous releases.

    Support for passing function arguments to the thread function by supplying
    additional arguments to the thread
    constructor.

    Backwards-compatibility overloads added for timed_lock
    and timed_wait functions
    to allow use of xtime
    for timeouts.

    Wave:

    Wave V2.0 is a new major release introducing some breaking API changes,
    preventing it to be used with Boost versions earlier than V1.36.0. Mainly,
    the API and hook interface have been streamlined for more consistency.

    Fixed a couple of bugs, improved regression test system to include testing
    of the preporcessing hooks interface (for details see: Changelog).

    Xpressive:
    Regular
    expressions that can be written as strings or as expression templates, and
    that can refer to each other and themselves recursively with the power of
    context-free grammars, from Eric Niebler.

    skip()
    for specifying which parts of the input sequence to ignore when matching
    it against a regex.

    regex_replace()
    accepts formatter objects and formatter expressions in addition to format
    strings.

    Range-based regex_replace() algorithm.

    Fix crash when semantic actions are placed in look-aheads, look-behinds
    or independent sub-expressions.

    Compilers Tested

    Boost's primary test compilers are:

    GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC

    GCC 4.2.3 on Ubuntu Linux 8.04.1

    HP C/aC B3910B A.06.17 on HP-UX 64-bit

    Visual C 9.0 SP1 beta, 8.0 SP1, and 7.1, all on Windows XP SP-2

    Boost's additional test compilers include:

    GCC 4.2.1 on FreeBSD-7

    GCC 4.1.2 on NetBSD

    HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC

    IBM XL C/C Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40

    Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.1

    Compaq C V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform.

    Sun C 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10.

    On Linux:

    GCC 3.4.3, 4.0.1, 4.2.1, 4.3.0.

    GCC 4.3.0 with C 0x extensions.

    GCC 3.4.6, 4.1.1, 4.2.1 on 64 bit linux.

    Intel C 8.1, 9.0 and 9.1.

    QLogic PathScale(TM) Compiler Suite: Version 3.1

    pgCC 7.2-3 64-bit target on x86-64 Linux

    On Windows:

    Intel 10.1, with Visual C 9 backend.

    Lots of tests on Visual C 7.1, 8.0, 9.0

    Visual C 7.1 with Apache C Standard Library 4.2.x branch.

    Visual C 8.0 with STLport 5.1

    Visual C 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0
    Pocket PC SDK (ARMV4I).

    Borland 5.6.4, 5.8.2, 5.9.3

    64 bit Intel 10.1, with Visual C 9 backend.

    64 bit Visual C 9.

    Comeau C 4.3.10.1 beta 2, with Visual C 9 backend.

    Acknowledgements

    Beman Dawes, Rene
    Rivera, and Daniel James managed this release. [Less]

    Version 1.36.0

    New Libraries

    Accumulators: Framework
    for incremental calculation, and collection of statistical accumulators,
    from Eric Niebler.

    Exception:
    A
    library for transporting ... [More] of arbitrary data in exception objects, and transporting
    of exceptions between threads, from Emil Dotchevski.

    Units:
    Zero-overhead dimensional
    analysis and unit/quantity manipulation and conversion, from Matthias Schabel
    and Steven Watanabe

    Unordered:
    Unordered
    associative containers, from Daniel James.

    Updated Libraries

    Asio:

    Added support for serial ports.

    Added support for UNIX domain sockets.

    Added support for raw sockets and ICMP.

    Added wrappers for POSIX stream-oriented file descriptors (excluding
    regular files).

    Added wrappers for Windows stream-oriented HANDLEs
    such as named pipes (requires HANDLEs
    that work with I/O completion ports).

    Added wrappers for Windows random-access HANDLEs
    such as files (requires HANDLEs
    that work with I/O completion ports).

    Added support for reactor-style operations (i.e. they report readiness
    but perform no I/O) using a new null_buffers
    type.

    Added an iterator type for bytewise traversal of buffer sequences.

    Added new read_until() and async_read_until() overloads that take a user-defined
    function object for locating message boundaries.

    Added an experimental two-lock queue (enabled by defining BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that
    may provide better io_service
    scalability across many processors.

    Various fixes, performance improvements, and more complete coverage of
    the custom memory allocation support.

    Assign:
    list_of()
    (and its variants) now has overloaded comparison operators. This allows you
    to write test code such as BOOST_CHECK_EQUAL( my_container, list_of(2)(3)(4)(5)
    );.

    Foreach: BOOST_FOREACH macro for easily iterating
    over the elements of a sequence, from Eric Niebler.

    New BOOST_REVERSE_FOREACH
    macro for iterating over a sequence in reverse.

    Function:

    Improved allocator support, from Emil Dotchevski.

    Hash:
    Minor updates
    and fixes, for more info see the change
    log.

    Interprocess:

    Added anonymous shared memory for UNIX systems.

    Fixed missing move semantics on managed memory classes.

    Added copy_on_write and open_read_only options for shared memory and
    mapped file managed classes.

    shared_ptr is movable
    and supports aliasing.

    Intrusive:

    Added linear<>
    and cache_last<>
    options to singly linked lists.

    Added optimize_multikey<> option to unordered container
    hooks.

    Optimized unordered containers when store_hash
    option is used in the hook.

    Implementation changed to avoid explicit use of try-catch blocks and be compilable with exceptions
    disabled.

    Math:

    Added new non-central Chi-Square, Beta, F and T distributions.

    Added Exponential Integral and Zeta special functions.

    Added Rounding, Truncation, and Unit-in-the-last-place functions.

    Added support for compile time powers of a runtime base.

    Added a few SSE2 based optimisations for the Lanczos approximations.

    MPI:

    Added support for non-blocking operations in Python, from Andreas Klöckner.

    Added support for graph topologies.

    Multi-index Containers:
    Minor
    additions and maintenance fixes. Consult the library release
    notes for further information.

    PtrContainer:
    Support
    for a few more containers, and addition of insert iterators. For details
    see upgrading
    details.

    Spirit:
    Integrated the
    "Classic" Spirit V1.8.x code base with Spirit V2, "The New
    Generation". See Change
    Log.

    Thread:

    New generic lock and
    try_lock functions for
    locking multiple mutexes at once.

    Rvalue reference support for move semantics where the compilers supports
    it.

    A few bugs fixed and missing functions added (including the serious win32
    condition variable bug).

    scoped_try_lock types
    are now backwards-compatible with Boost 1.34.0 and previous releases.

    Support for passing function arguments to the thread function by supplying
    additional arguments to the thread
    constructor.

    Backwards-compatibility overloads added for timed_lock
    and timed_wait functions
    to allow use of xtime
    for timeouts.

    Wave:

    Wave V2.0 is a new major release introducing some breaking API changes,
    preventing it to be used with Boost versions earlier than V1.36.0. Mainly,
    the API and hook interface have been streamlined for more consistency.

    Fixed a couple of bugs, improved regression test system to include testing
    of the preporcessing hooks interface (for details see: Changelog).

    Xpressive:
    Regular
    expressions that can be written as strings or as expression templates, and
    that can refer to each other and themselves recursively with the power of
    context-free grammars, from Eric Niebler.

    skip()
    for specifying which parts of the input sequence to ignore when matching
    it against a regex.

    regex_replace()
    accepts formatter objects and formatter expressions in addition to format
    strings.

    Range-based regex_replace() algorithm.

    Fix crash when semantic actions are placed in look-aheads, look-behinds
    or independent sub-expressions.

    Compilers Tested

    Boost's primary test compilers are:

    GCC 4.01 on Mac OS X 10.4.10 with both Intel and Power PC

    GCC 4.2.3 on Ubuntu Linux 8.04.1

    HP C/aC B3910B A.06.17 on HP-UX 64-bit

    Visual C 9.0 SP1 beta, 8.0 SP1, and 7.1, all on Windows XP SP-2

    Boost's additional test compilers include:

    GCC 4.2.1 on FreeBSD-7

    GCC 4.1.2 on NetBSD

    HP aCC on OS: HP-UX B.11.31 U ia64 and HP-UX B.11.31 9000/800 RISC

    IBM XL C/C Enterprise Edition for AIX, V10.1.0.0, on AIX Version 5.3.0.40

    Intel 9.1, 10.0, and 10.1, on Mac OS X 10.4.1

    Compaq C V7.1-006 for Compaq Tru64 Unix on an OSF1 V5.1 platform.

    Sun C 5.7, 5.8, 5.9 and GCC 3.4.6 on Sun Solaris 5.10.

    On Linux:

    GCC 3.4.3, 4.0.1, 4.2.1, 4.3.0.

    GCC 4.3.0 with C 0x extensions.

    GCC 3.4.6, 4.1.1, 4.2.1 on 64 bit linux.

    Intel C 8.1, 9.0 and 9.1.

    QLogic PathScale(TM) Compiler Suite: Version 3.1

    pgCC 7.2-3 64-bit target on x86-64 Linux

    On Windows:

    Intel 10.1, with Visual C 9 backend.

    Lots of tests on Visual C 7.1, 8.0, 9.0

    Visual C 7.1 with Apache C Standard Library 4.2.x branch.

    Visual C 8.0 with STLport 5.1

    Visual C 8.0 with STLport 5.1 cross-compiling for Windows Mobile 5.0
    Pocket PC SDK (ARMV4I).

    Borland 5.6.4, 5.8.2, 5.9.3

    64 bit Intel 10.1, with Visual C 9 backend.

    64 bit Visual C 9.

    Comeau C 4.3.10.1 beta 2, with Visual C 9 backend.

    Acknowledgements

    Beman Dawes, Rene
    Rivera, and Daniel James managed this release. [Less]

    Version 1.35.0

    New Libraries

    Asio: Portable networking,
    including sockets, timers, hostname resolution and socket iostreams, from
    Chris Kohlhoff.

    Bimap: Boost.Bimap is a
    bidirectional maps ... [More] library for C . With Boost.Bimap you can create associative
    containers in which both types can be used as key, from Matias Capeletto.

    Circular Buffer: STL
    compliant container also known as ring or cyclic buffer, from Jan Gaspar.

    Function Types:
    Boost.FunctionTypes
    provides functionality to classify, decompose and synthesize function, function
    pointer, function reference and pointer to member types. From Tobias Schwinger.

    Fusion:
    Library for working
    with tuples, including various containers, algorithms, etc. From Joel de
    Guzman, Dan Marsden and Tobias Schwinger.

    GIL:
    Generic Image Library,
    from Lubomir Bourdev and Hailin Jin.

    Interprocess:
    Shared
    memory, memory mapped files, process-shared mutexes, condition variables,
    containers and allocators, from Ion Gaztañaga.

    Intrusive:
    Intrusive
    containers and algorithms, from Ion Gaztañaga.

    Math/Special
    Functions:
    A wide selection of mathematical special functions from
    John Maddock, Paul Bristow, Hubert Holin and Xiaogang Zhang.

    Math/Statistical
    Distributions:
    A wide selection of univariate statistical distributions
    and functions that operate on them from John Maddock and Paul Bristow

    MPI:
    Message Passing Interface
    library, for use in distributed-memory parallel application programming,
    from Douglas Gregor and Matthias Troyer.

    System:
    Operating system
    support, including the diagnostics support that will be part of the C 0x
    standard library, from Beman Dawes.

    Updated Libraries

    Graph:
    Generic graph
    components and algorithms. Highlights:

    kolmogorov_max_flow,
    from Stephan Diederich as part of the 2006 Google Summer of Code.

    read_dimacs_max_flow
    and write_dimacs_max_flow
    for max-flow problems, from Stephan Diederich.

    read_graphml and write_graphml for GraphML input/output,
    from Tiago de Paula Peixoto.

    minimum_cycle_ratio and
    maximum_cycle_ratio,
    from Dmitry Bufistov and Andrey Parfenov.

    boyer_myrvold_planarity_test,
    along with a suite of algorithms for planar graphs, from Aaron Windsor.

    LEDA Adaptor improvements, from Jens Müller.

    Hash:
    A TR1 hash
    function object, from Daniel James. Highlights:

    Support for long long,
    std::complex.

    Improved the algorithm for hashing floating point numbers.

    A few bug and warning fixes.

    Iostreams: Framework
    for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
    Highlights:

    Clarified the semantics of close(). This fixes several bugs but will
    break some existing code. See Release
    Notes for details.

    Numerous other bug fixes and optimizations.

    Multi Array:

    Added "dimensionality" compile-time constante to the MultiArray
    concept.

    For greater control over error situations, uses of C assert have been
    replaced with BOOST_ASSERT.

    Fixed a bug with simultaneous resizing and reindexing.

    Multi-index Containers:

    New global_fun predefined key extractor.

    Added iterator_to facility.

    Included support
    for non-standard allocators such as those of Boost.Interprocess,
    which makes multi_index_containers
    placeable in shared memory.

    New versions of modify
    and modify_key with rollback,
    as described in the tutorial.

    A number of optimizations and minor improvements have also been included.
    For a complete list of changes, see the library release
    notes.

    Serialization:
    Boost.Serialization
    has been updated with optimizations for dense arrays.

    Thread:

    The Thread library has been updated to be more in line with the C 0x
    working draft.

    Instances of boost::thread and of the various lock types are now movable.

    Threads can be interrupted at interruption points.

    Condition variables can now be used with any type that implements the
    Lockable concept, through the use of boost::condition_variable_any
    (boost::condition is a typedef to boost::condition_variable_any, provided for
    backwards compatibility). boost::condition_variable
    is provided as an optimization, and will only work with boost::unique_lock<boost::mutex>
    (boost::mutex::scoped_lock).

    Thread IDs are separated from boost::thread, so a thread can obtain it's
    own ID (using boost::this_thread::get_id()),
    and IDs can be used as keys in associative containers, as they have the
    full set of comparison operators.

    Timeouts are now implemented using the Boost DateTime library, through
    a typedef boost::system_time for absolute timeouts,
    and with support for relative timeouts in many cases. boost::xtime
    is supported for backwards compatibility only.

    Locks are implemented as publicly accessible templates boost::lock_guard, boost::unique_lock,
    boost::shared_lock, and boost::upgrade_lock,
    which are templated on the type of the mutex. The Lockable concept has
    been extended to include publicly available lock() and unlock() member functions, which are used by
    the lock types.

    boost::try_mutex has been removed, and the
    functionality subsumed into boost::mutex.
    boost::try_mutex is left as a typedef, but
    is no longer a separate class.

    boost::recursive_try_mutex has been removed,
    and the functionality subsumed into boost::recursive_mutex.
    boost::recursive_try_mutex is left as a typedef,
    but is no longer a separate class.

    boost::detail::thread::lock_ops has been removed. Code that
    relies on the lock_ops
    implementation detail will no longer work, as this has been removed,
    as it is no longer necessary now that mutex types now have public lock()
    and unlock()
    member functions.

    scoped_lock constructors
    with a second parameter of type bool are no longer provided. With previous
    boost releases, boost::mutex::scoped_lock
    some_lock(some_mutex,false);
    could be used to create a lock object that was associated with a mutex,
    but did not lock it on construction. This facility has now been replaced
    with the constructor that takes a boost::defer_lock_type
    as the second parameter: boost::mutex::scoped_lock
    some_lock(some_mutex,boost::defer_lock);

    The broken boost::read_write_mutex has been replaced
    with boost::shared_mutex.

    Wave: Standards conformant
    implementation of the mandated C99/C preprocessor functionality packed
    behind an easy to use iterator interface, from Hartmut Kaiser. Highlights:

    Added the possibility to continue the preprocessing after an error occured.

    Added the macro introspection API to the wave::context object.

    Added threading support to the library.

    Improved the overall performance by upto 30%.

    Changed and unified preprocessor hook interface (this is an interface
    breaking change!), added several new preprocessor hook functions.

    Added serialization support.

    Added new examples (for instance: Hannibal - a partial C parser, by
    Danny Havenith).

    Added a new lexical analyzer based on Ben Hansons Lexertl library.

    Fixed a large number of other bugs and problems.

    Xpressive: Regular
    expressions that can be written as strings or as expression templates, and
    that can refer to each other and themselves recursively with the power of
    context-free grammars, from Eric Niebler. Highlights:

    Added semantic actions to static regexes. A semantic
    action is code that executes when part of a regular expression matches.

    Added custom assertions to static regexes. A custom
    assertion is a Boolean predicate that can participate in the regex match.

    Added named regexes for embedding a static or dynamic
    regex into a dynamic regex. This can be used to create dynamic regex
    grammars.

    Added named captures to dynamic regexes, like Perl.

    Supported Compilers

    The following compilers are officially supported in this release:

    HP aC A.06.14 on HP-UX

    Darwin GCC 4.01.

    GNU GCC up to version 4.2.1, on Linux and Solaris.

    Intel C 9.1 on Linux.

    Intel C 10.1 on Windows.

    Microsoft Visual C 7.1 and 8 on Windows (Visual Sudio .NET 2003 and 2005).

    In addition the following compilers should be well supported, but weren't part
    of out release criteria for 1.35:

    IBM Visual Age 9.0 on AIX.

    Intel C 10 and later on Linux.

    GNU GCC 4.3 and later on Linux and Solaris.

    Microsoft Visual C 9 (Visual Studio .NET 2008).

    Acknowledgements

    Beman Dawes managed this
    release. [Less]

Read all Boost C++ Libraries articles…


Who uses Boost C++ Libraries?

Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32

Who contributes to Boost C++ Libraries?

Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32 Anon32
I'm a contributor

Where in the world?



Related Projects by Tags

2D Skeletal Lib, orx, SAGA, SpringCat, Ultimate++


People who use Boost C++ Libraries also use:

CppUnit - C++ port of JUnit Improving Boost Docs TinyXML Eric


Project Cost

This calculator estimates how much it would cost to hire a team to write this project from scratch. More »
Include
Codebase 5,264,026
Effort (est.) 1567 Person Years
Avg. Salary $ year
$ 86,183,655