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.6/5.0

Based on 82 user ratings.

Your Rating

Click to rate this project.

over 2 years 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? |

3 months ago Avatar
Great piece of C++

  by Mateusz Loskot

Boost C++ Libraries represent collection of the greatest pieces of C++ code ever written by humanity.

Was this review helpful to you? |

Links

0 links submitted so far. Submit your own links.

News

Edit RSS feeds.

    Version 1.39.0

    New Libraries

    Signals2: Managed signals
    & slots callback implementation (thread-safe version 2), from Frank Mori
    Hess.

    Updated Libraries

    Asio:

    ... [More] Implement automatic resizing of the bucket array in the internal hash
    maps. This is to improve performance for very large numbers of asynchronous
    operations and also to reduce memory usage for very small numbers. A
    new macro BOOST_ASIO_HASH_MAP_BUCKETS
    may be used to tweak the sizes used for the bucket arrays.

    Add performance optimisation for the Windows IOCP backend for when no
    timers are used.

    Prevent locale settings from affecting formatting of TCP and UDP endpoints
    (#2682).

    Fix a memory leak that occurred when an asynchronous SSL operation's
    completion handler threw an exception (#2910).

    Fix the implementation of io_control() so that it adheres to the documented
    type requirements for IoControlCommand (#2820).

    Fix incompatibility between Asio and ncurses.h (#2156).

    On Windows, specifically handle the case when an overlapped ReadFile call fails with ERROR_MORE_DATA. This enables a hack
    where a windows::stream_handle can be used with a message-oriented
    named pipe (#2936).

    Fix system call wrappers to always clear the error on success, as POSIX
    allows successful system calls to modify errno (#2953).

    Don't include termios.h if BOOST_ASIO_DISABLE_SERIAL_PORT
    is defined (#2917).

    Cleaned up some more MSVC level 4 warnings (#2828).

    Various documentation fixes (#2871).

    Flyweight:

    The refcounted
    component was not thread-safe due to an incorrect implementation and
    could deadlock under heavy usage conditions. This problem has been corrected.

    Foreach:

    Eliminate shadow warnings on gcc for nested FOREACH
    loops

    Portability fix for Intel-Win toolset

    Hash:

    Remove deprecated headers for hashing containers. Everything that was
    in them is included in <functional/hash.hpp>
    (#2412).

    Other minor changes, full details in the library change
    log.

    Interprocess:

    Increased portability and bug fixes. Full details in the library change
    log.

    Intrusive:

    Optimizations and bug fixes. Full details in the library change
    log.

    Program.Options:

    Multitoken options fixed (#469).

    Proto:

    Work around incompatibility with standard Linux header.

    Add proto::noinvoke<>
    to block metafunction invocation in object transforms.

    PtrContainer:

    Bug fixes from Trac applied.

    Range:

    Bug fixes from Trac applied.

    Unordered:

    Fixed regression in 1.38 that prevented unordered from using more than
    about 1.5 million buckets (#2975).

    Minor implementation changes, including #2756.
    Full details in the library change
    log.

    Xpressive:

    Work around for gcc optimization problem resulting in pure virtual function
    call runtime error (#2655).

    Updated Tools

    Boostbook:

    Improved PDF generation.

    Preliminary HTMLHelp support.

    Add default path for callout images.

    Include data members' <purpose>
    in the class synopsis.

    Fix bug where a function's <purpose>
    wasn't displayed if it was just plain text.

    Support the alt tag in <headername>
    and <macroname>. Use this if the header or macro
    name is different to the contents of the tag (#1977).

    Support links relative to the boost root in <ulink>
    tags, using a custom url, see the linking
    documentation for details (#1166).

    Avoid generating filenames that only differ in case for function, method
    and macro documentation.

    Run the docbook chunker quietly, unless boostbook.verbose is set. This
    parameter might be used in other places in future releases.

    Make the 1.1 DTD available.

    Fill in some missing reference documentation (partially fixes #2153).

    Changes to doxygen integration:

    Support \throw.

    Support global variables and enums.

    Better support for documentation written in function and method bodies.

    Workaround a problem with doxygen 1.5.8's xml output (#2937).

    Quickbook:

    Return an error code and error count if there are any errors (#1399).

    Support both windows and cygwin paths at the compile line when compiled
    with cygwin.

    Fix some issues with C++ and Python code:

    Fail gracefully for a mismatched ''.

    Warn if any unexpected character are encountered and write them out
    properly (#1170).

    Fix a bug for hex encoded characters in strings (#2860).

    Improved testing, including tests for expected failures.

    Generate valid document info for document types other than library (#2711):

    Remove library specific attributes.

    Put title before info block.

    Fix a bug when calling templates.

    Less warnings when built using gcc.

    Small documentation improvements (#1213,
    #2701).

    Fix a bug with xinclude pages when outdir is the current directory (#2921).

    Compilers Tested

    Boost's primary test compilers are:

    OS X:

    GCC 4.0.1 on Intel Tiger and Leopard

    GCC 4.0.1 on PowerPC Tiger

    Linux:

    GCC 4.3.2 on Ubuntu Linux.

    GCC 4.3.3 on Debian "unstable".

    Windows:

    Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP.

    Boost's additional test compilers include:

    Linux:

    Intel 9.0 on Red Hat Enterprise Linux

    Intel 10.0 on Red Hat Enterprise Linux

    Intel 10.1 on 64-bit Linux Redhat 5.1 Server.

    Intel 10.1 on Suse Linux on 64 bit Itanium

    Intel 11.0 on Red Hat Enterprise Linux

    GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux

    GCC 4.1.2 on 64-bit Redhat Server 5.1

    GCC 4.1.2 on Suse Linux on 64 bit Itanium

    GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux

    GCC 4.3.2 with C++0x extensions on Red Hat Enterprise Linux

    GCC 4.2.1 on OpenSuSE Linux

    QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise
    Linux

    GNU gcc version 4.2.0 (PathScale 3.2 driver) on 64-bit Red Hat Enterprise
    Linux

    Sun 5.9 on Red Hat Enterprise Linux

    OS X:

    Intel 9.1, 10.1 on Tiger

    Intel 10.1, 11.0 on Leopard

    GCC 4.2.1 on Leopard

    Windows:

    Visual C++ 9.0 on Vista.

    Visual C++ 9.0, using STLport 5.2, on XP and Windows Mobile 5.0.

    Borland 5.9.3

    Borland 6.1.0

    Intel C++ 11.0, with a Visual C++ 9.0 backend, on XP 32-bit.

    Intel C++ 11.0, with a Visual C++ 9.0 backend, on Vista 64-bit. (TODO:
    not recently)

    GCC 4.3.3, on Mingw

    AIX:

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

    NetBSD:

    GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64.

    Solaris:

    Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10

    GCC 3.4.6 on Solaris 5.10

    Acknowledgements

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

    Version 1.39.0

    New Libraries

    Signals2: Managed signals
    & slots callback implementation (thread-safe version 2), from Frank Mori
    Hess.

    Updated Libraries

    Asio:

    ... [More] Implement automatic resizing of the bucket array in the internal hash
    maps. This is to improve performance for very large numbers of asynchronous
    operations and also to reduce memory usage for very small numbers. A
    new macro BOOST_ASIO_HASH_MAP_BUCKETS
    may be used to tweak the sizes used for the bucket arrays.

    Add performance optimisation for the Windows IOCP backend for when no
    timers are used.

    Prevent locale settings from affecting formatting of TCP and UDP endpoints
    (#2682).

    Fix a memory leak that occurred when an asynchronous SSL operation's
    completion handler threw an exception (#2910).

    Fix the implementation of io_control() so that it adheres to the documented
    type requirements for IoControlCommand (#2820).

    Fix incompatibility between Asio and ncurses.h (#2156).

    On Windows, specifically handle the case when an overlapped ReadFile call fails with ERROR_MORE_DATA. This enables a hack
    where a windows::stream_handle can be used with a message-oriented
    named pipe (#2936).

    Fix system call wrappers to always clear the error on success, as POSIX
    allows successful system calls to modify errno (#2953).

    Don't include termios.h if BOOST_ASIO_DISABLE_SERIAL_PORT
    is defined (#2917).

    Cleaned up some more MSVC level 4 warnings (#2828).

    Various documentation fixes (#2871).

    Flyweight:

    The refcounted
    component was not thread-safe due to an incorrect implementation and
    could deadlock under heavy usage conditions. This problem has been corrected.

    Foreach:

    Eliminate shadow warnings on gcc for nested FOREACH
    loops

    Portability fix for Intel-Win toolset

    Hash:

    Remove deprecated headers for hashing containers. Everything that was
    in them is included in <functional/hash.hpp>
    (#2412).

    Other minor changes, full details in the library change
    log.

    Interprocess:

    Increased portability and bug fixes. Full details in the library change
    log.

    Intrusive:

    Optimizations and bug fixes. Full details in the library change
    log.

    Program.Options:

    Multitoken options fixed (#469).

    Proto:

    Work around incompatibility with standard Linux header.

    Add proto::noinvoke<>
    to block metafunction invocation in object transforms.

    PtrContainer:

    Bug fixes from Trac applied.

    Range:

    Bug fixes from Trac applied.

    Unordered:

    Fixed regression in 1.38 that prevented unordered from using more than
    about 1.5 million buckets (#2975).

    Minor implementation changes, including #2756.
    Full details in the library change
    log.

    Xpressive:

    Work around for gcc optimization problem resulting in pure virtual function
    call runtime error (#2655).

    Updated Tools

    Boostbook:

    Improved PDF generation.

    Preliminary HTMLHelp support.

    Add default path for callout images.

    Include data members' <purpose>
    in the class synopsis.

    Fix bug where a function's <purpose>
    wasn't displayed if it was just plain text.

    Support the alt tag in <headername>
    and <macroname>. Use this if the header or macro
    name is different to the contents of the tag (#1977).

    Support links relative to the boost root in <ulink>
    tags, using a custom url, see the linking
    documentation for details (#1166).

    Avoid generating filenames that only differ in case for function, method
    and macro documentation.

    Run the docbook chunker quietly, unless boostbook.verbose is set. This
    parameter might be used in other places in future releases.

    Make the 1.1 DTD available.

    Fill in some missing reference documentation (partially fixes #2153).

    Changes to doxygen integration:

    Support \throw.

    Support global variables and enums.

    Better support for documentation written in function and method bodies.

    Workaround a problem with doxygen 1.5.8's xml output (#2937).

    Quickbook:

    Return an error code and error count if there are any errors (#1399).

    Support both windows and cygwin paths at the compile line when compiled
    with cygwin.

    Fix some issues with C++ and Python code:

    Fail gracefully for a mismatched ''.

    Warn if any unexpected character are encountered and write them out
    properly (#1170).

    Fix a bug for hex encoded characters in strings (#2860).

    Improved testing, including tests for expected failures.

    Generate valid document info for document types other than library (#2711):

    Remove library specific attributes.

    Put title before info block.

    Fix a bug when calling templates.

    Less warnings when built using gcc.

    Small documentation improvements (#1213,
    #2701).

    Fix a bug with xinclude pages when outdir is the current directory (#2921).

    Compilers Tested

    Boost's primary test compilers are:

    OS X:

    GCC 4.0.1 on Intel Tiger and Leopard

    GCC 4.0.1 on PowerPC Tiger

    Linux:

    GCC 4.3.2 on Ubuntu Linux.

    GCC 4.3.3 on Debian "unstable".

    Windows:

    Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP.

    Boost's additional test compilers include:

    Linux:

    Intel 9.0 on Red Hat Enterprise Linux

    Intel 10.0 on Red Hat Enterprise Linux

    Intel 10.1 on 64-bit Linux Redhat 5.1 Server.

    Intel 10.1 on Suse Linux on 64 bit Itanium

    Intel 11.0 on Red Hat Enterprise Linux

    GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux

    GCC 4.1.2 on 64-bit Redhat Server 5.1

    GCC 4.1.2 on Suse Linux on 64 bit Itanium

    GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux

    GCC 4.3.2 with C++0x extensions on Red Hat Enterprise Linux

    GCC 4.2.1 on OpenSuSE Linux

    QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise
    Linux

    GNU gcc version 4.2.0 (PathScale 3.2 driver) on 64-bit Red Hat Enterprise
    Linux

    Sun 5.9 on Red Hat Enterprise Linux

    OS X:

    Intel 9.1, 10.1 on Tiger

    Intel 10.1, 11.0 on Leopard

    GCC 4.2.1 on Leopard

    Windows:

    Visual C++ 9.0 on Vista.

    Visual C++ 9.0, using STLport 5.2, on XP and Windows Mobile 5.0.

    Borland 5.9.3

    Borland 6.1.0

    Intel C++ 11.0, with a Visual C++ 9.0 backend, on XP 32-bit.

    Intel C++ 11.0, with a Visual C++ 9.0 backend, on Vista 64-bit. (TODO:
    not recently)

    GCC 4.3.3, on Mingw

    AIX:

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

    NetBSD:

    GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64.

    Solaris:

    Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10

    GCC 3.4.6 on Solaris 5.10

    Acknowledgements

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

    Version 1.38.0

    New Libraries

    Flyweight:

    Design pattern to manage large quantities of highly redundant objects,
    from Joaquín M López Muñoz.

    ScopeExit:

    Execute ... [More] arbitrary code at scope exit, from Alexander Nasonov.

    Swap:

    Enhanced generic swap function, from Joseph Gauterin.

    Updated Libraries

    Accumulators:

    Add rolling_sum, rolling_count and rolling_mean
    accumulators.

    Any:

    Use a by-value argument for operator= (#2311).

    Asio:

    Improved compatibility with some Windows firewall software.

    Ensured arguments to windows::overlapped_ptr::complete() are correctly passed to the completion
    handler (#2614).

    Fixed a link problem and multicast failure on QNX (#2504,
    #2530).

    Fixed a compile error in SSL support on MinGW / g 3.4.5.

    Drop back to using a pipe for notification if eventfd is not available
    at runtime on Linux (#2683).

    Various minor bug and documentation fixes (#2534,
    #2541,
    #2607,
    #2617,
    #2619)

    Config:

    Add new macros BOOST_NO_STD_UNORDERED and BOOST_NO_INITIALIZER_LISTS.

    Added Codegear compiler support.

    Added Dragonfly to the BSD family of configs.

    Updated MSVC's binary ABI settings to match compiler default when doing
    64-bit builds.

    Recognise latest compilers from MS and Intel.

    Date_Time:

    Added support for formatting and reading time durations longer than 24
    hours with new formatter: %0.

    Removed the testfrmwk.hpp
    file from the public include directory.

    Fixed several bugs and compile errors.

    For full details see the change
    history

    Exception:

    Improved and more customizable diagnostic_information
    output.

    Filesystem:

    Fix native(name) test failures on POSIX-like systems.

    Several bugfixes (#2543,
    #2224,
    #2531,
    #1840,
    #2542).

    Graph:

    Added a new algorithms for Travelling Salesman Problem approximation
    (metric_tsp_approx) and
    resource-constrained Shortest Paths (r_c_shortest_paths).

    Support for named vertices in adjacency_list.

    A number of bugfixes ( #416,
    #1622,
    #1700,
    #2209,
    #2392,
    #2460,
    and #2550)

    Hash:

    boost/functional/detail/container_fwd.hpp has been moved to boost/detail/container_fwd.hpp. The current location is deprecated.

    For more detail, see the library
    changelog.

    Interprocess:

    Updated documentation to show rvalue-references functions instead of
    emulation functions.

    More non-copyable classes are now movable.

    Move-constructor and assignments now leave moved object in default-constructed
    state instead of just swapping contents.

    Several bugfixes (#2391,
    #2431,
    #1390,
    #2570,
    #2528).

    Intrusive:

    New treap-based containers: treap, treap_set, treap_multiset.

    Corrected compilation bug for Windows-based 64 bit compilers.

    Corrected exception-safety bugs in container constructors.

    Updated documentation to show rvalue-references functions instead of
    emulation functions.

    Lexical Cast:

    Changed to work without RTTI when BOOST_NO_TYPEID
    is defined (#1220).

    Math:

    Added Johan Råde's optimised floating point classification routines.

    Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).

    Multi-index Containers:
    Some
    redundant type definitions have been deprecated. Consult the library release notes
    for further information.

    Proto:

    Fix problem with SFINAE of binary operators (Bug 2407).

    Fix proto::call transform for callable transforms
    with >3 arguments.

    result_of::value changed behavior for array-by-value
    terminals.

    unpack_expr requires
    only Forward Sequences rather than Random Access Sequences.

    Deprecate legacy undocumented BOOST_PROTO_DEFINE_(VARARG_)FUNCTION_TEMPLATE
    macros.

    Add BOOST_PROTO_REPEAT
    and BOOST_PROTO_LOCAL_ITERATE
    macros to help with repetitive code generation

    Support for nullary expressions with tag types other than proto::tag::terminal

    Allow 0- and 1-argument variants of proto::or_
    and proto::and_

    Regex:

    Breaking change: empty expressions,
    and empty alternatives are now allowed when using the Perl regular expression
    syntax. This change has been added for Perl compatibility, when the new
    syntax_option_type no_empty_expressions
    is set then the old behaviour is preserved and empty expressions are
    prohibited. This is issue #1081.

    Added support for Perl style ${n} expressions in format strings (issue
    #2556).

    Added support for accessing the location of sub-expressions within the
    regular expression string (issue #2269).

    Fixed compiler compatibility issues #2244,
    #2514,
    and #2458.

    Thread:

    No longer catches unhandled exceptions in threads as this debuggers couldn't
    identify the cause of unhandled exceptions in threads. An unhandled exception
    will still cause the application to terminate.

    TR1:

    Added support for the TR1 math functions and the unordered containers.

    Type Traits:

    Added support for Codegear intrinsics.

    Minor tweaks to warning suppression and alignment_of code.

    Unordered:

    Use boost::swap.

    Use a larger prime number list for selecting the number of buckets.

    Use aligned
    storage to store the types.

    Add support for C 0x initializer lists where they're available.

    For more detail, see the library
    changelog.

    Xpressive:

    basic_regex gets nested
    syntax_option_flags and
    value_type typedef, for
    compatibility with std::basic_regex

    Ported to Proto v4; Proto v2 at boost/xpressive/proto
    has been removed.

    regex_error inherits
    from boost::exception

    Other Changes

    Experimental support for building Boost with CMake
    has been introduced in this version. For more details see the wiki,
    Discussion is taking place on the Boost-cmake
    mailing list.

    Fixed subversion properties for several files. Most notably, unix shell scripts
    should always have unix line endings, even in the windows packages.

    Compilers Tested

    Boost's primary test compilers are:

    OS X:

    GCC 4.0.1 on Intel OS X 10.4.10, 10.5.2

    GCC 4.0.1 on PowerPC OS X 10.4.9

    Linux:

    GCC 4.3.2 on Ubuntu Linux.

    GCC 4.3.3 on Debian "unstable".

    HP-UX:

    GCC 4.2.1 on HP-UX 64-bit.

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

    Windows:

    Visual C 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP.

    Boost's additional test compilers include:

    Linux:

    GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux

    GCC 4.1.2 on 64-bit Redhat Server 5.1

    GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux

    GCC 4.3.2 with C 0x extensions

    GCC 4.2.1 on OpenSuSE Linux

    pgCC 8.0-0a 64-bit target on Red Hat Enterprise Linux

    QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise
    Linux

    OS X:

    Intel 9.1, 10.0 on OS X 10.4.10

    Intel 10.1, 11.0 on OS X 10.5.2

    Windows:

    Visual C 9.0 on Vista EE 64-bit.

    Visual C 9.0 express on Vista 32-bit.

    Visual C 9.0 on XP 32-bit.

    Visual C 8.0, using STLport, on XP and Windows Mobile 5.0

    Visual C 7.1, using STLport, on XP

    Borland 5.9.3

    Borland 6.1.0

    Intel C 11.0, with a Visual C 9.0 backend, on XP 32-bit.

    Intel C 11.0, with a Visual C 9.0 backend, on Vista 64-bit.

    Comeau 4.3.10.1 beta 2, with a Visual C 9.0 backend.

    GCC 3.4.4, on Cygwin

    AIX:

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

    FreeBSD:

    GCC 4.2.1 on FreeBSD 7.

    NetBSD:

    GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64.

    QNX:

    QNX Software Development Platform 6.4.0 x86

    Solaris:

    Sun C 5.7, 5.8, 5.9 on Solaris 5.10

    GCC 3.4.6 on Solaris 5.10

    Acknowledgements

    Beman Dawes, Eric Niebler,
    Rene Rivera, and Daniel
    James managed this release. Thanks to Vicente Botet for helping compile these
    release notes. [Less]

    Version 1.38.0

    New Libraries

    Flyweight:

    Design pattern to manage large quantities of highly redundant objects,
    from Joaquín M López Muñoz.

    ScopeExit:

    Execute ... [More] arbitrary code at scope exit, from Alexander Nasonov.

    Swap:

    Enhanced generic swap function, from Joseph Gauterin.

    Updated Libraries

    Accumulators:

    Add rolling_sum, rolling_count and rolling_mean
    accumulators.

    Any:

    Use a by-value argument for operator= (#2311).

    Asio:

    Improved compatibility with some Windows firewall software.

    Ensured arguments to windows::overlapped_ptr::complete() are correctly passed to the completion
    handler (#2614).

    Fixed a link problem and multicast failure on QNX (#2504,
    #2530).

    Fixed a compile error in SSL support on MinGW / g 3.4.5.

    Drop back to using a pipe for notification if eventfd is not available
    at runtime on Linux (#2683).

    Various minor bug and documentation fixes (#2534,
    #2541,
    #2607,
    #2617,
    #2619)

    Config:

    Add new macros BOOST_NO_STD_UNORDERED and BOOST_NO_INITIALIZER_LISTS.

    Added Codegear compiler support.

    Added Dragonfly to the BSD family of configs.

    Updated MSVC's binary ABI settings to match compiler default when doing
    64-bit builds.

    Recognise latest compilers from MS and Intel.

    Date_Time:

    Added support for formatting and reading time durations longer than 24
    hours with new formatter: %0.

    Removed the testfrmwk.hpp
    file from the public include directory.

    Fixed several bugs and compile errors.

    For full details see the change
    history

    Exception:

    Improved and more customizable diagnostic_information
    output.

    Filesystem:

    Fix native(name) test failures on POSIX-like systems.

    Several bugfixes (#2543,
    #2224,
    #2531,
    #1840,
    #2542).

    Graph:

    Added a new algorithms for Travelling Salesman Problem approximation
    (metric_tsp_approx) and
    resource-constrained Shortest Paths (r_c_shortest_paths).

    Support for named vertices in adjacency_list.

    A number of bugfixes ( #416,
    #1622,
    #1700,
    #2209,
    #2392,
    #2460,
    and #2550)

    Hash:

    boost/functional/detail/container_fwd.hpp has been moved to boost/detail/container_fwd.hpp. The current location is deprecated.

    For more detail, see the library
    changelog.

    Interprocess:

    Updated documentation to show rvalue-references functions instead of
    emulation functions.

    More non-copyable classes are now movable.

    Move-constructor and assignments now leave moved object in default-constructed
    state instead of just swapping contents.

    Several bugfixes (#2391,
    #2431,
    #1390,
    #2570,
    #2528).

    Intrusive:

    New treap-based containers: treap, treap_set, treap_multiset.

    Corrected compilation bug for Windows-based 64 bit compilers.

    Corrected exception-safety bugs in container constructors.

    Updated documentation to show rvalue-references functions instead of
    emulation functions.

    Lexical Cast:

    Changed to work without RTTI when BOOST_NO_TYPEID
    is defined (#1220).

    Math:

    Added Johan Råde's optimised floating point classification routines.

    Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).

    Multi-index Containers:
    Some
    redundant type definitions have been deprecated. Consult the library release notes
    for further information.

    Proto:

    Fix problem with SFINAE of binary operators (Bug 2407).

    Fix proto::call transform for callable transforms
    with >3 arguments.

    result_of::value changed behavior for array-by-value
    terminals.

    unpack_expr requires
    only Forward Sequences rather than Random Access Sequences.

    Deprecate legacy undocumented BOOST_PROTO_DEFINE_(VARARG_)FUNCTION_TEMPLATE
    macros.

    Add BOOST_PROTO_REPEAT
    and BOOST_PROTO_LOCAL_ITERATE
    macros to help with repetitive code generation

    Support for nullary expressions with tag types other than proto::tag::terminal

    Allow 0- and 1-argument variants of proto::or_
    and proto::and_

    Regex:

    Breaking change: empty expressions,
    and empty alternatives are now allowed when using the Perl regular expression
    syntax. This change has been added for Perl compatibility, when the new
    syntax_option_type no_empty_expressions
    is set then the old behaviour is preserved and empty expressions are
    prohibited. This is issue #1081.

    Added support for Perl style ${n} expressions in format strings (issue
    #2556).

    Added support for accessing the location of sub-expressions within the
    regular expression string (issue #2269).

    Fixed compiler compatibility issues #2244,
    #2514,
    and #2458.

    Thread:

    No longer catches unhandled exceptions in threads as this debuggers couldn't
    identify the cause of unhandled exceptions in threads. An unhandled exception
    will still cause the application to terminate.

    TR1:

    Added support for the TR1 math functions and the unordered containers.

    Type Traits:

    Added support for Codegear intrinsics.

    Minor tweaks to warning suppression and alignment_of code.

    Unordered:

    Use boost::swap.

    Use a larger prime number list for selecting the number of buckets.

    Use aligned
    storage to store the types.

    Add support for C 0x initializer lists where they're available.

    For more detail, see the library
    changelog.

    Xpressive:

    basic_regex gets nested
    syntax_option_flags and
    value_type typedef, for
    compatibility with std::basic_regex

    Ported to Proto v4; Proto v2 at boost/xpressive/proto
    has been removed.

    regex_error inherits
    from boost::exception

    Other Changes

    Experimental support for building Boost with CMake
    has been introduced in this version. For more details see the wiki,
    Discussion is taking place on the Boost-cmake
    mailing list.

    Fixed subversion properties for several files. Most notably, unix shell scripts
    should always have unix line endings, even in the windows packages.

    Compilers Tested

    Boost's primary test compilers are:

    OS X:

    GCC 4.0.1 on Intel OS X 10.4.10, 10.5.2

    GCC 4.0.1 on PowerPC OS X 10.4.9

    Linux:

    GCC 4.3.2 on Ubuntu Linux.

    GCC 4.3.3 on Debian "unstable".

    HP-UX:

    GCC 4.2.1 on HP-UX 64-bit.

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

    Windows:

    Visual C 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP.

    Boost's additional test compilers include:

    Linux:

    GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux

    GCC 4.1.2 on 64-bit Redhat Server 5.1

    GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux

    GCC 4.3.2 with C 0x extensions

    GCC 4.2.1 on OpenSuSE Linux

    pgCC 8.0-0a 64-bit target on Red Hat Enterprise Linux

    QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise
    Linux

    OS X:

    Intel 9.1, 10.0 on OS X 10.4.10

    Intel 10.1, 11.0 on OS X 10.5.2

    Windows:

    Visual C 9.0 on Vista EE 64-bit.

    Visual C 9.0 express on Vista 32-bit.

    Visual C 9.0 on XP 32-bit.

    Visual C 8.0, using STLport, on XP and Windows Mobile 5.0

    Visual C 7.1, using STLport, on XP

    Borland 5.9.3

    Borland 6.1.0

    Intel C 11.0, with a Visual C 9.0 backend, on XP 32-bit.

    Intel C 11.0, with a Visual C 9.0 backend, on Vista 64-bit.

    Comeau 4.3.10.1 beta 2, with a Visual C 9.0 backend.

    GCC 3.4.4, on Cygwin

    AIX:

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

    FreeBSD:

    GCC 4.2.1 on FreeBSD 7.

    NetBSD:

    GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64.

    QNX:

    QNX Software Development Platform 6.4.0 x86

    Solaris:

    Sun C 5.7, 5.8, 5.9 on Solaris 5.10

    GCC 3.4.6 on Solaris 5.10

    Acknowledgements

    Beman Dawes, Eric Niebler,
    Rene Rivera, and Daniel
    James managed this release. Thanks to Vicente Botet for helping compile these
    release notes. [Less]

    Version 1.38.0

    New Libraries

    Flyweight:

    Design pattern to manage large quantities of highly redundant objects,
    from Joaquín M López Muñoz.

    ScopeExit:

    Execute ... [More] arbitrary code at scope exit, from Alexander Nasonov.

    Swap:

    Enhanced generic swap function, from Joseph Gauterin.

    Updated Libraries

    Accumulators:

    Add rolling_sum, rolling_count and rolling_mean
    accumulators.

    Any:

    Use a by-value argument for operator= (#2311).

    Asio:

    Improved compatibility with some Windows firewall software.

    Ensured arguments to windows::overlapped_ptr::complete() are correctly passed to the completion
    handler (#2614).

    Fixed a link problem and multicast failure on QNX (#2504,
    #2530).

    Fixed a compile error in SSL support on MinGW / g++ 3.4.5.

    Drop back to using a pipe for notification if eventfd is not available
    at runtime on Linux (#2683).

    Various minor bug and documentation fixes (#2534,
    #2541,
    #2607,
    #2617,
    #2619)

    Config:

    Add new macros BOOST_NO_STD_UNORDERED and BOOST_NO_INITIALIZER_LISTS.

    Added Codegear compiler support.

    Added Dragonfly to the BSD family of configs.

    Updated MSVC's binary ABI settings to match compiler default when doing
    64-bit builds.

    Recognise latest compilers from MS and Intel.

    Date_Time:

    Added support for formatting and reading time durations longer than 24
    hours with new formatter: %0.

    Removed the testfrmwk.hpp
    file from the public include directory.

    Fixed several bugs and compile errors.

    For full details see the change
    history

    Exception:

    Improved and more customizable diagnostic_information
    output.

    Filesystem:

    Fix native(name) test failures on POSIX-like systems.

    Several bugfixes (#2543,
    #2224,
    #2531,
    #1840,
    #2542).

    Graph:

    Added a new algorithms for Travelling Salesman Problem approximation
    (metric_tsp_approx) and
    resource-constrained Shortest Paths (r_c_shortest_paths).

    Support for named vertices in adjacency_list.

    A number of bugfixes ( #416,
    #1622,
    #1700,
    #2209,
    #2392,
    #2460,
    and #2550)

    Hash:

    boost/functional/detail/container_fwd.hpp has been moved to boost/detail/container_fwd.hpp. The current location is deprecated.

    For more detail, see the library
    changelog.

    Interprocess:

    Updated documentation to show rvalue-references functions instead of
    emulation functions.

    More non-copyable classes are now movable.

    Move-constructor and assignments now leave moved object in default-constructed
    state instead of just swapping contents.

    Several bugfixes (#2391,
    #2431,
    #1390,
    #2570,
    #2528).

    Intrusive:

    New treap-based containers: treap, treap_set, treap_multiset.

    Corrected compilation bug for Windows-based 64 bit compilers.

    Corrected exception-safety bugs in container constructors.

    Updated documentation to show rvalue-references functions instead of
    emulation functions.

    Lexical Cast:

    Changed to work without RTTI when BOOST_NO_TYPEID
    is defined (#1220).

    Math:

    Added Johan Råde's optimised floating point classification routines.

    Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451).

    Multi-index Containers:
    Some
    redundant type definitions have been deprecated. Consult the library release notes
    for further information.

    Proto:

    Fix problem with SFINAE of binary operators (Bug 2407).

    Fix proto::call transform for callable transforms
    with >3 arguments.

    result_of::value changed behavior for array-by-value
    terminals.

    unpack_expr requires
    only Forward Sequences rather than Random Access Sequences.

    Deprecate legacy undocumented BOOST_PROTO_DEFINE_(VARARG_)FUNCTION_TEMPLATE
    macros.

    Add BOOST_PROTO_REPEAT
    and BOOST_PROTO_LOCAL_ITERATE
    macros to help with repetitive code generation

    Support for nullary expressions with tag types other than proto::tag::terminal

    Allow 0- and 1-argument variants of proto::or_
    and proto::and_

    Regex:

    Breaking change: empty expressions,
    and empty alternatives are now allowed when using the Perl regular expression
    syntax. This change has been added for Perl compatibility, when the new
    syntax_option_type no_empty_expressions
    is set then the old behaviour is preserved and empty expressions are
    prohibited. This is issue #1081.

    Added support for Perl style ${n} expressions in format strings (issue
    #2556).

    Added support for accessing the location of sub-expressions within the
    regular expression string (issue #2269).

    Fixed compiler compatibility issues #2244,
    #2514,
    and #2458.

    Thread:

    No longer catches unhandled exceptions in threads as this debuggers couldn't
    identify the cause of unhandled exceptions in threads. An unhandled exception
    will still cause the application to terminate.

    TR1:

    Added support for the TR1 math functions and the unordered containers.

    Type Traits:

    Added support for Codegear intrinsics.

    Minor tweaks to warning suppression and alignment_of code.

    Unordered:

    Use boost::swap.

    Use a larger prime number list for selecting the number of buckets.

    Use aligned
    storage to store the types.

    Add support for C++0x initializer lists where they're available.

    For more detail, see the library
    changelog.

    Xpressive:

    basic_regex gets nested
    syntax_option_flags and
    value_type typedef, for
    compatibility with std::basic_regex

    Ported to Proto v4; Proto v2 at boost/xpressive/proto
    has been removed.

    regex_error inherits
    from boost::exception

    Other Changes

    Experimental support for building Boost with CMake
    has been introduced in this version. For more details see the wiki,
    Discussion is taking place on the Boost-cmake
    mailing list.

    Fixed subversion properties for several files. Most notably, unix shell scripts
    should always have unix line endings, even in the windows packages.

    Compilers Tested

    Boost's primary test compilers are:

    OS X:

    GCC 4.0.1 on Intel OS X 10.4.10, 10.5.2

    GCC 4.0.1 on PowerPC OS X 10.4.9

    Linux:

    GCC 4.3.2 on Ubuntu Linux.

    GCC 4.3.3 on Debian "unstable".

    HP-UX:

    GCC 4.2.1 on HP-UX 64-bit.

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

    Windows:

    Visual C++ 7.1 SP1, 8.0 SP1 and 9.0 SP1 on Windows XP.

    Boost's additional test compilers include:

    Linux:

    GCC 4.1.1, 4.2.1 on 64-bit Red Hat Enterprise Linux

    GCC 4.1.2 on 64-bit Redhat Server 5.1

    GCC 3.4.3, GCC 4.0.1, GCC 4.2.4 and GCC 4.3.2 on Red Hat Enterprise Linux

    GCC 4.3.2 with C++0x extensions

    GCC 4.2.1 on OpenSuSE Linux

    pgCC 8.0-0a 64-bit target on Red Hat Enterprise Linux

    QLogic PathScale(TM) Compiler Suite: Version 3.1 on Red Hat Enterprise
    Linux

    OS X:

    Intel 9.1, 10.0 on OS X 10.4.10

    Intel 10.1, 11.0 on OS X 10.5.2

    Windows:

    Visual C++ 9.0 on Vista EE 64-bit.

    Visual C++ 9.0 express on Vista 32-bit.

    Visual C++ 9.0 on XP 32-bit.

    Visual C++ 8.0, using STLport, on XP and Windows Mobile 5.0

    Visual C++ 7.1, using STLport, on XP

    Borland 5.9.3

    Borland 6.1.0

    Intel C++ 11.0, with a Visual C++ 9.0 backend, on XP 32-bit.

    Intel C++ 11.0, with a Visual C++ 9.0 backend, on Vista 64-bit.

    Comeau 4.3.10.1 beta 2, with a Visual C++ 9.0 backend.

    GCC 3.4.4, on Cygwin

    AIX:

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

    FreeBSD:

    GCC 4.2.1 on FreeBSD 7.

    NetBSD:

    GCC 4.1.2 on NetBSD 4.0/i386 and NetBSD 4.0/amd64.

    QNX:

    QNX Software Development Platform 6.4.0 x86

    Solaris:

    Sun C++ 5.7, 5.8, 5.9 on Solaris 5.10

    GCC 3.4.6 on Solaris 5.10

    Acknowledgements

    Beman Dawes, Eric Niebler,
    Rene Rivera, and Daniel
    James managed this release. Thanks to Vicente Botet for helping compile these
    release notes. [Less]

Read all Boost C++ Libraries articles…

Download Page
252 downloads

Who uses Boost C++ Libraries?

Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar

Who contributes to Boost C++ Libraries?

Avatar Avatar Avatar Avatar Avatar Avatar Avatar Avatar
I'm a contributor

Who manages Boost C++ Libraries?

I'm a manager

Where in the world?



Related Projects by Tags

Irrlicht Engine, LibNUI, orx, SAGA, SpringCat


People who use Boost C++ Libraries also use:

IndieZen libcurl Improving Boost Docs


Project Cost

This calculator estimates how much it would cost to hire a team to write this project from scratch. More »
Include
Codebase 15,616,088
Effort (est.) 4901 Person Years
Avg. Salary $ year
$ 269,580,210