[147 total ]
Version 1.41.0

New Libraries

Property Tree: A
tree data structure especially suited to storing configuration data, from
Marcin Kalicinski and Sebastian Redl.

Updated Libraries

... [More] DateTime:

The default format for time durations is now "%-%O:%M:%S%F" instead of "%-%H:%M:%S%F"
that was used previously. In order to retain the old behavior, the format
string has to be specified explicitly during the time IO facet construction
(#1861).

Gregorian dates now use 32-bit integer type internally on 64-bit platforms
(#3308).

See the full
changelog for more detail.

Filesystem:

Bug fixes: (#3385).
(#3528).
(#3509).

Iostreams:
Some old
unreleased developments. There are still several open issues that should
be fixed in the next version.

Add a grep filter (#1627).

Support archives with multiple members (#1896).

Make tee work with input
streams (#791).

Improved filesystem interoperability.

Several warnings fixed or suppressed (including #1618,
#1875,
#2779).

Various other fixes (including #1580,
#1671).

Math:
Substantially improved
the performance of the incomplete gamma function and it's inverse: this enhances
the performance of the gamma, poisson, chi-squared and non-central chi-squared
distributions.

Multi-index Containers:
Maintenance
fixes. Consult the library release
notes for further information.

Proto:

Clean up some MSVC warnings and errors in /Za (disable Microsoft extensions)
mode.

Fixes for c++0x mode on various compilers.

Python:
Boost.Python now
supports Python 3 (Haoyu Bai's Google Summer of Code project, mentored by
Stefan Seefeld).

Regex:
Added support for
many Perl 5.10 syntax elements including named sub-expressions, branch resets
and recursive regular expressions.

Spirit: This is the initial
official release of the new Spirit V2.1, a completely new library for parsing,
lexing, and output generation. Note: this release is not backwards compatible
with earlier versions. Known issue: qi::symbol::find
will match a symbol that starts with the string you're searching for. This
will be fixed in the next version.

System:

Bug fix: (#3559).

Thread:

Support for futures, promises and packaged tasks added

boost::thread_specific_ptr is now faster when
there are lots of thread-specific objects

Some Boost.Thread facilities are now header-only

Unordered:
Major update:

Replaced a lot of the macro based implementation with a cleaner template
based implementation.

Reduced memory use.

Full details in the
changelog.

Utility:
A "const"
issue of value_initialized
is fixed: Its data()
member function and its conversion operator are replaced by overloads for
const and non-const access (#2548).

Wave:
See the changelog
for details.

Xpressive:

Fix infinite loop with some uses of \Q...\E quotemeta
(#3586).

Eliminate unreachable code warnings on MSVC

Clean up some MSVC warnings and errors in /Za ("disable Microsoft
extensions") mode.

Fixes for c++0x mode on various compilers.

Build System

A bug preventing "fat" 32-bit + 64-bit builds on OSX has been fixed.

Boost.CMake moved

The cmake version of boost has moved; the Boost.CMmake release will be separate
and will lag the main release slightly, but will also be capable of producing
patch releases as necessary.

More information on the Boost
CMake wiki page.

Updated Tools

Quickbook 1.5:
These
changes require your document to use the [quickbook 1.5] tag:

More intuitive syntax and variable lookup for template calls (#1174, #2034, #2036).

Image attributes (#1157)

Table Ids (#1194)

Better handling of whitespace in section
syntax. (#2712)

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.4.1 on Ubuntu Linux.

GCC 4.4 on Debian

Windows:

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

Boost's additional test compilers include:

Linux:

Intel 10.1 on Red Hat Enterprise Linux.

Intel 10.1 on 64-bit Red Hat Enterprise Linux.

Intel 10.1 on Suse Linux on 64 bit Itanium.

Intel 11.0 on 32 bit Red Hat Enterprise Linux.

Intel 11.0 on 64 bit Red Hat Enterprise Linux.

Intel 11.1 on 64 bit Red Hat Enterprise Linux.

Intel 11.1 on 64 bit Linux Redhat 5.1 Server.

GCC 3.4.3, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.1 on Red Hat Enterprise Linux.

GCC 4.3.3 and GCC 4.4.1 with C++0x extensions on Red Hat Enterprise Linux.

GCC 4.3.3 on 64-bit Redhat Server 5.1.

GCC 4.3.3 on 64 bit Linux.

GCC 4.3.4 on Debian unstable.

GCC 4.3.2 on 64 bit Gentoo.

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

Sun 5.9 on Red Hat Enterprise Linux.

OS X:

Intel C++ Compiler 11.1 on Leopard.

Intel C++ Compiler 10.1, 11.0.

GCC 4.0.1 on Intel Tiger.

GCC 4.0.1 on PowerPC Tiger.

Windows:

Visual C++ 7.1, 8,0, 9,0 on XP.

Visual C++ 9.0 on 32-bit Vista.

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

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

Visual C++ 10.0 beta 1 with a
patch for the program options lib.

Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.0 (2010).

Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.

GCC 4.4.1 on Mingw, with and without C++0x extensions.

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.0.

Solaris:

Sun C++ 5.10 on Solaris 5.10.

Acknowledgements

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

Version 1.41.0

New Libraries

Property Tree: A
tree data structure especially suited to storing configuration data, from
Marcin Kalicinski and Sebastian Redl.

Updated Libraries

... [More] DateTime:

The default format for time durations is now "%-%O:%M:%S%F" instead of "%-%H:%M:%S%F"
that was used previously. In order to retain the old behavior, the format
string has to be specified explicitly during the time IO facet construction
(#1861).

Gregorian dates now use 32-bit integer type internally on 64-bit platforms
(#3308).

See the full
changelog for more detail.

Filesystem:

Bug fixes: (#3385).
(#3528).
(#3509).

Iostreams:
Some old
unreleased developments. There are still several open issues that should
be fixed in the next version.

Add a grep filter (#1627).

Support archives with multiple members (#1896).

Make tee work with input
streams (#791).

Improved filesystem interoperability.

Several warnings fixed or suppressed (including #1618,
#1875,
#2779).

Various other fixes (including #1580,
#1671).

Math:
Substantially improved
the performance of the incomplete gamma function and it's inverse: this enhances
the performance of the gamma, poisson, chi-squared and non-central chi-squared
distributions.

Multi-index Containers:
Maintenance
fixes. Consult the library release
notes for further information.

Proto:

Clean up some MSVC warnings and errors in /Za (disable Microsoft extensions)
mode.

Fixes for c++0x mode on various compilers.

Python:
Boost.Python now
supports Python 3 (Haoyu Bai's Google Summer of Code project, mentored by
Stefan Seefeld).

Regex:
Added support for
many Perl 5.10 syntax elements including named sub-expressions, branch resets
and recursive regular expressions.

Spirit: This is the initial
official release of the new Spirit V2.1, a completely new library for parsing,
lexing, and output generation. Note: this release is not backwards compatible
with earlier versions. Known issue: qi::symbol::find
will match a symbol that starts with the string you're searching for. This
will be fixed in the next version.

System:

Bug fix: (#3559).

Thread:

Support for futures, promises and packaged tasks added

boost::thread_specific_ptr is now faster when
there are lots of thread-specific objects

Some Boost.Thread facilities are now header-only

Unordered:
Major update:

Replaced a lot of the macro based implementation with a cleaner template
based implementation.

Reduced memory use.

Full details in the
changelog.

Utility:
A "const"
issue of value_initialized
is fixed: Its data()
member function and its conversion operator are replaced by overloads for
const and non-const access (#2548).

Wave:
See the changelog
for details.

Xpressive:

Fix infinite loop with some uses of \Q...\E quotemeta
(#3586).

Eliminate unreachable code warnings on MSVC

Clean up some MSVC warnings and errors in /Za ("disable Microsoft
extensions") mode.

Fixes for c++0x mode on various compilers.

Build System

A bug preventing "fat" 32-bit + 64-bit builds on OSX has been fixed.

Boost.CMake moved

The cmake version of boost has moved; the Boost.CMmake release will be separate
and will lag the main release slightly, but will also be capable of producing
patch releases as necessary.

More information on the Boost
CMake wiki page.

Updated Tools

Quickbook 1.5:
These
changes require your document to use the [quickbook 1.5] tag:

More intuitive syntax and variable lookup for template calls (#1174, #2034, #2036).

Image attributes (#1157)

Table Ids (#1194)

Better handling of whitespace in section
syntax. (#2712)

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.4.1 on Ubuntu Linux.

GCC 4.4 on Debian

Windows:

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

Boost's additional test compilers include:

Linux:

Intel 10.1 on Red Hat Enterprise Linux.

Intel 10.1 on 64-bit Red Hat Enterprise Linux.

Intel 10.1 on Suse Linux on 64 bit Itanium.

Intel 11.0 on 32 bit Red Hat Enterprise Linux.

Intel 11.0 on 64 bit Red Hat Enterprise Linux.

Intel 11.1 on 64 bit Red Hat Enterprise Linux.

Intel 11.1 on 64 bit Linux Redhat 5.1 Server.

GCC 3.4.3, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.1 on Red Hat Enterprise Linux.

GCC 4.3.3 and GCC 4.4.1 with C++0x extensions on Red Hat Enterprise Linux.

GCC 4.3.3 on 64-bit Redhat Server 5.1.

GCC 4.3.3 on 64 bit Linux.

GCC 4.3.4 on Debian unstable.

GCC 4.3.2 on 64 bit Gentoo.

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

Sun 5.9 on Red Hat Enterprise Linux.

OS X:

Intel C++ Compiler 11.1 on Leopard.

Intel C++ Compiler 10.1, 11.0.

GCC 4.0.1 on Intel Tiger.

GCC 4.0.1 on PowerPC Tiger.

Windows:

Visual C++ 7.1, 8,0, 9,0 on XP.

Visual C++ 9.0 on 32-bit Vista.

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

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

Visual C++ 10.0 beta 1 with a
patch for the program options lib.

Borland/Codegear C++ 5.9.3, 6.1.3 (2009), 6.2.0 (2010).

Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.

GCC 4.4.1 on Mingw, with and without C++0x extensions.

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.0.

Solaris:

Sun C++ 5.10 on Solaris 5.10.

Acknowledgements

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

Version 1.40.0

Boost.CMake

Boost.CMake is now distributed separately.
The cmake build for boost is BROKEN in the
tarballs above. See the Boost.CMake
wiki page for pointers to working versions.

Updated ... [More] Libraries

Accumulators:

Works on GCC 4.4.

Asio:

Added a new ping example to illustrate the use of ICMP sockets.

Changed the buffered*_stream<> templates to treat 0-byte reads
and writes as no-ops, to comply with the documented type requirements
for SyncReadStream,
AsyncReadStream, SyncWriteStream and AsyncWriteStream.

Changed some instances of the throw
keyword to boost::throw_exception()
to allow Asio to be used when exception support is disabled. Note that
the SSL wrappers still require exception support (#2754).

Made Asio compatible with the OpenSSL 1.0 beta (#3256).

Eliminated a redundant system call in the Solaris /dev/poll
backend.

Fixed a bug in resizing of the bucket array in the internal hash maps
(#3095).

Ensured correct propagation of the error code when a synchronous accept
fails (#3216).

Ensured correct propagation of the error code when a synchronous read
or write on a Windows HANDLE fails.

Fixed failures reported when _GLIBCXX_DEBUG
is defined (#3098).

Fixed custom memory allocation support for timers (#3107).

Tidied up various warnings reported by g++ (#1341,
#2618).

Various documentation improvements, including more obvious hyperlinks
to function overloads, header file information, examples for the handler
type requirements, and adding enum values to the index (#3157,
#2620).

Circular Buffer:

Fixed bugs #2785,
#3285.

Foreach:

Workaround for conflict with Python headers (#3000).

Function:

Optimize the use of small target objects.

Make Boost.Function compile under BOOST_NO_EXCEPTIONS (#2499,
#2494,
#2469,
#2466,
#2900)

Various minor fixes (#2642,
#2847,
#2929
#3012)

Fusion:

Improved compile times for fusion::vector.

Hash:

Automatically configure the float functions using template metaprogramming
instead of trying to configure every possibility manually.

Interprocess:

Windows shared memory is created in Shared Documents folder so that it
can be shared between services and processes

Fixed bugs #2967,
#2973,
#2992,
#3138,
#3166,
#3205.

Intrusive:

Code cleanup in tree_algorithms.hpp and avl_tree_algorithms.hpp

Fixed bug #3164.

MPL:

Added mpl::char_ and mpl::string
for compile-time string manipulation, based on multichar literals (#2905).

Updated MPL Reference Manual.

Bug fixes.

Program.Options:

Support for building with disabled exceptions (#2096).

Unicode parser no longer drops original tokens (#2425).

Fixed crash on user-inserted items in variables_map
(#2782).

Proto:

PrimitiveTransforms have stricter conformance to ResultOf protocol. (Warning:
some invalid code may break.)

Add a sensible default for proto::_default's
template parameter.

Improved default evaluation strategy for pointers to members.

GCC 3.4 portability fixes (#3021).

Work around Visual C++'s non-std-compliant ciso646 macros.

Random:

Made the constructors of all the generators call the copy constructor
when passed a non-const reference.

Changed seeding functions to accept any arithmetic type. As a side-effect,
the exact signature of seed changed for some classes.

Major bug fixes in uniform_int.

Serialization:

Removed deprecated headers: boost/static_warning.hpp,
boost/state_saver.hpp, boost/smart_cast.hpp,
boost/pfto.hpp. Use the the equivalent headers
in the boost/serialization/
directory instead (#3062).

detail::archive_serializer_map should now be
used instead of detail::archive_pointer_iserializer.
For more details see the
library release notes.

Unordered:

Implement emplace for
all compilers, not just ones with rvalue references and variadic templates
(#1978).

Create less buckets by default.

Some minor tweaks for better compiler support (#2908,
#3096,
#3082).

Xpressive:

Works on Visual C++ 10.0 (#3124).

Build System

The default naming of libraries in Unix-like environment now matches system
conventions, and does not include various decorations. Naming of libraries
on Cygwin was also fixed. Support for beta versions of Microsoft Visual Studio
10 was added. With gcc, 64-bit compilation no longer requires that target architecture
be specified.

Updated Tools

Boostbook:

Hide INTERNAL ONLY
enums in doxygen documentation (#3242).

Tweaked appearance of member classes/structs/unions in a class synopsis.

Quickbook:

Support python code snippets (#3029).

Add teletype source mode
(#1202)

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.3 on Ubuntu Linux.

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.

Intel 11.1 on Red Hat Enterprise Linux.

GCC 3.4.3, GCC 4.0.1, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.0 on Red Hat Enterprise
Linux.

GCC 4.3.3 and GCC 4.4.0 with C++0x extensions on Red Hat Enterprise Linux.

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

GCC 4.1.2 on Suse Linux on 64 bit Itanium.

GCC 4.1.2 on 64-bit Redhat Server 5.1.

GCC Open64 4.2.2 on Red Hat Enterprise Linux.

GCC 4.3.4 on Debian unstable.

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

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 10.1, 11.0 on Intel Leopard.

Intel 10.1, 11.0 on Intel Tiger.

GCC 4.0.1, 4.2.1 on Intel Leopard.

GCC 4.0.1 on Intel Tiger.

GCC 4.0.1 on PowerPC Tiger.

Windows:

Visual C++ 7.1 on XP.

Visual C++ 9.0 on XP.

Visual C++ 9.0 on Vista.

Visual C++ 9.0 on Vista 64-bit.

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

Visual C++ 10.0 beta.

Borland 5.9.3, 6.1.0, 6.1.3.

Borland C++ Builder 2007 and 2009.

Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.

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

GCC 4.3.3 and 4.4.0, on Mingw with C++0x features.

AIX:

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

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.40.0

Updated Libraries

Accumulators:

Works on GCC 4.4.

Asio:

Added a new ping example to illustrate the use of ICMP sockets.

Changed the ... [More] buffered*_stream<> templates to treat 0-byte reads
and writes as no-ops, to comply with the documented type requirements
for SyncReadStream,
AsyncReadStream, SyncWriteStream and AsyncWriteStream.

Changed some instances of the throw
keyword to boost::throw_exception()
to allow Asio to be used when exception support is disabled. Note that
the SSL wrappers still require exception support (#2754).

Made Asio compatible with the OpenSSL 1.0 beta (#3256).

Eliminated a redundant system call in the Solaris /dev/poll
backend.

Fixed a bug in resizing of the bucket array in the internal hash maps
(#3095).

Ensured correct propagation of the error code when a synchronous accept
fails (#3216).

Ensured correct propagation of the error code when a synchronous read
or write on a Windows HANDLE fails.

Fixed failures reported when _GLIBCXX_DEBUG
is defined (#3098).

Fixed custom memory allocation support for timers (#3107).

Tidied up various warnings reported by g++ (#1341,
#2618).

Various documentation improvements, including more obvious hyperlinks
to function overloads, header file information, examples for the handler
type requirements, and adding enum values to the index (#3157,
#2620).

Circular Buffer:

Fixed bugs #2785,
#3285.

Foreach:

Workaround for conflict with Python headers (#3000).

Function:

Optimize the use of small target objects.

Make Boost.Function compile under BOOST_NO_EXCEPTIONS (#2499,
#2494,
#2469,
#2466,
#2900)

Various minor fixes (#2642,
#2847,
#2929
#3012)

Fusion:

Improved compile times for fusion::vector.

Hash:

Automatically configure the float functions using template metaprogramming
instead of trying to configure every possibility manually.

Interprocess:

Windows shared memory is created in Shared Documents folder so that it
can be shared between services and processes

Fixed bugs #2967,
#2973,
#2992,
#3138,
#3166,
#3205.

Intrusive:

Code cleanup in tree_algorithms.hpp and avl_tree_algorithms.hpp

Fixed bug #3164.

MPL:

Added mpl::char_ and mpl::string
for compile-time string manipulation, based on multichar literals (#2905).

Updated MPL Reference Manual.

Bug fixes.

Program.Options:

Support for building with disabled exceptions (#2096).

Unicode parser no longer drops original tokens (#2425).

Fixed crash on user-inserted items in variables_map
(#2782).

Proto:

PrimitiveTransforms have stricter conformance to ResultOf protocol. (Warning:
some invalid code may break.)

Add a sensible default for proto::_default's
template parameter.

Improved default evaluation strategy for pointers to members.

GCC 3.4 portability fixes (#3021).

Work around Visual C++'s non-std-compliant ciso646 macros.

Random:

Made the constructors of all the generators call the copy constructor
when passed a non-const reference.

Changed seeding functions to accept any arithmetic type. As a side-effect,
the exact signature of seed changed for some classes.

Major bug fixes in uniform_int.

Serialization:

Removed deprecated headers: boost/static_warning.hpp,
boost/state_saver.hpp, boost/smart_cast.hpp,
boost/pfto.hpp. Use the the equivalent headers
in the boost/serialization/
directory instead (#3062).

detail::archive_serializer_map should now be
used instead of detail::archive_pointer_iserializer.
For more details see the
library release notes.

Unordered:

Implement emplace for
all compilers, not just ones with rvalue references and variadic templates
(#1978).

Create less buckets by default.

Some minor tweaks for better compiler support (#2908,
#3096,
#3082).

Xpressive:

Works on Visual C++ 10.0 (#3124).

Build System

The default naming of libraries in Unix-like environment now matches system
conventions, and does not include various decorations. Naming of libraries
on Cygwin was also fixed. Support for beta versions of Microsoft Visual Studio
10 was added. With gcc, 64-bit compilation no longer requires that target architecture
be specified.

Updated Tools

Boostbook:

Hide INTERNAL ONLY
enums in doxygen documentation (#3242).

Tweaked appearance of member classes/structs/unions in a class synopsis.

Quickbook:

Support python code snippets (#3029).

Add teletype source mode
(#1202)

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.3 on Ubuntu Linux.

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.

Intel 11.1 on Red Hat Enterprise Linux.

GCC 3.4.3, GCC 4.0.1, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.0 on Red Hat Enterprise
Linux.

GCC 4.3.3 and GCC 4.4.0 with C++0x extensions on Red Hat Enterprise Linux.

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

GCC 4.1.2 on Suse Linux on 64 bit Itanium.

GCC 4.1.2 on 64-bit Redhat Server 5.1.

GCC Open64 4.2.2 on Red Hat Enterprise Linux.

GCC 4.3.4 on Debian unstable.

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

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 10.1, 11.0 on Intel Leopard.

Intel 10.1, 11.0 on Intel Tiger.

GCC 4.0.1, 4.2.1 on Intel Leopard.

GCC 4.0.1 on Intel Tiger.

GCC 4.0.1 on PowerPC Tiger.

Windows:

Visual C++ 7.1 on XP.

Visual C++ 9.0 on XP.

Visual C++ 9.0 on Vista.

Visual C++ 9.0 on Vista 64-bit.

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

Visual C++ 10.0 beta.

Borland 5.9.3, 6.1.0, 6.1.3.

Borland C++ Builder 2007 and 2009.

Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.

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

GCC 4.3.3 and 4.4.0, on Mingw with C++0x features.

AIX:

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

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.40.0

Updated Libraries

Accumulators:

Works on GCC 4.4.

Asio:

Added a new ping example to illustrate the use of ICMP sockets.

Changed the ... [More] buffered*_stream<> templates to treat 0-byte reads
and writes as no-ops, to comply with the documented type requirements
for SyncReadStream,
AsyncReadStream, SyncWriteStream and AsyncWriteStream.

Changed some instances of the throw
keyword to boost::throw_exception()
to allow Asio to be used when exception support is disabled. Note that
the SSL wrappers still require exception support (#2754).

Made Asio compatible with the OpenSSL 1.0 beta (#3256).

Eliminated a redundant system call in the Solaris /dev/poll
backend.

Fixed a bug in resizing of the bucket array in the internal hash maps
(#3095).

Ensured correct propagation of the error code when a synchronous accept
fails (#3216).

Ensured correct propagation of the error code when a synchronous read
or write on a Windows HANDLE fails.

Fixed failures reported when _GLIBCXX_DEBUG
is defined (#3098).

Fixed custom memory allocation support for timers (#3107).

Tidied up various warnings reported by g++ (#1341,
#2618).

Various documentation improvements, including more obvious hyperlinks
to function overloads, header file information, examples for the handler
type requirements, and adding enum values to the index (#3157,
#2620).

Circular Buffer:

Fixed bugs #2785,
#3285.

Foreach:

Workaround for conflict with Python headers (#3000).

Function:

Optimize the use of small target objects.

Make Boost.Function compile under BOOST_NO_EXCEPTIONS (#2499,
#2494,
#2469,
#2466,
#2900)

Various minor fixes (#2642,
#2847,
#2929
#3012)

Fusion:

Improved compile times for fusion::vector.

Hash:

Automatically configure the float functions using template metaprogramming
instead of trying to configure every possibility manually.

Interprocess:

Windows shared memory is created in Shared Documents folder so that it
can be shared between services and processes

Fixed bugs #2967,
#2973,
#2992,
#3138,
#3166,
#3205.

Intrusive:

Code cleanup in tree_algorithms.hpp and avl_tree_algorithms.hpp

Fixed bug #3164.

MPL:

Added mpl::char_ and mpl::string
for compile-time string manipulation, based on multichar literals (#2905).

Updated MPL Reference Manual.

Bug fixes.

Program.Options:

Support for building with disabled exceptions (#2096).

Unicode parser no longer drops original tokens (#2425).

Fixed crash on user-inserted items in variables_map
(#2782).

Proto:

PrimitiveTransforms have stricter conformance to ResultOf protocol. (Warning:
some invalid code may break.)

Add a sensible default for proto::_default's
template parameter.

Improved default evaluation strategy for pointers to members.

GCC 3.4 portability fixes (#3021).

Work around Visual C++'s non-std-compliant ciso646 macros.

Random:

Made the constructors of all the generators call the copy constructor
when passed a non-const reference.

Changed seeding functions to accept any arithmetic type. As a side-effect,
the exact signature of seed changed for some classes.

Major bug fixes in uniform_int.

Serialization:

Removed deprecated headers: boost/static_warning.hpp,
boost/state_saver.hpp, boost/smart_cast.hpp,
boost/pfto.hpp. Use the the equivalent headers
in the boost/serialization/
directory instead (#3062).

detail::archive_serializer_map should now be
used instead of detail::archive_pointer_iserializer.
For more details see the
library release notes.

Unordered:

Implement emplace for
all compilers, not just ones with rvalue references and variadic templates
(#1978).

Create less buckets by default.

Some minor tweaks for better compiler support (#2908,
#3096,
#3082).

Xpressive:

Works on Visual C++ 10.0 (#3124).

Build System

The default naming of libraries in Unix-like environment now matches system
conventions, and does not include various decorations. Naming of libraries
on Cygwin was also fixed. Support for beta versions of Microsoft Visual Studio
10 was added. With gcc, 64-bit compilation no longer requires that target architecture
be specified.

Updated Tools

Boostbook:

Hide INTERNAL ONLY
enums in doxygen documentation (#3242).

Tweaked appearance of member classes/structs/unions in a class synopsis.

Quickbook:

Support python code snippets (#3029).

Add teletype source mode
(#1202)

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.3 on Ubuntu Linux.

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.

Intel 11.1 on Red Hat Enterprise Linux.

GCC 3.4.3, GCC 4.0.1, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.0 on Red Hat Enterprise
Linux.

GCC 4.3.3 and GCC 4.4.0 with C++0x extensions on Red Hat Enterprise Linux.

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

GCC 4.1.2 on Suse Linux on 64 bit Itanium.

GCC 4.1.2 on 64-bit Redhat Server 5.1.

GCC Open64 4.2.2 on Red Hat Enterprise Linux.

GCC 4.3.4 on Debian unstable.

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

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 10.1, 11.0 on Intel Leopard.

Intel 10.1, 11.0 on Intel Tiger.

GCC 4.0.1, 4.2.1 on Intel Leopard.

GCC 4.0.1 on Intel Tiger.

GCC 4.0.1 on PowerPC Tiger.

Windows:

Visual C++ 7.1 on XP.

Visual C++ 9.0 on XP.

Visual C++ 9.0 on Vista.

Visual C++ 9.0 on Vista 64-bit.

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

Visual C++ 10.0 beta.

Borland 5.9.3, 6.1.0, 6.1.3.

Borland C++ Builder 2007 and 2009.

Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.

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

GCC 4.3.3 and 4.4.0, on Mingw with C++0x features.

AIX:

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

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.40.0

Boost.CMake

Boost.CMake is now distributed separately.
The cmake build for boost is BROKEN in the
tarballs above. See the Boost.CMake
wiki page for pointers to working versions.

Updated ... [More] Libraries

Accumulators:

Works on GCC 4.4.

Asio:

Added a new ping example to illustrate the use of ICMP sockets.

Changed the buffered*_stream<> templates to treat 0-byte reads
and writes as no-ops, to comply with the documented type requirements
for SyncReadStream,
AsyncReadStream, SyncWriteStream and AsyncWriteStream.

Changed some instances of the throw
keyword to boost::throw_exception()
to allow Asio to be used when exception support is disabled. Note that
the SSL wrappers still require exception support (#2754).

Made Asio compatible with the OpenSSL 1.0 beta (#3256).

Eliminated a redundant system call in the Solaris /dev/poll
backend.

Fixed a bug in resizing of the bucket array in the internal hash maps
(#3095).

Ensured correct propagation of the error code when a synchronous accept
fails (#3216).

Ensured correct propagation of the error code when a synchronous read
or write on a Windows HANDLE fails.

Fixed failures reported when _GLIBCXX_DEBUG
is defined (#3098).

Fixed custom memory allocation support for timers (#3107).

Tidied up various warnings reported by g++ (#1341,
#2618).

Various documentation improvements, including more obvious hyperlinks
to function overloads, header file information, examples for the handler
type requirements, and adding enum values to the index (#3157,
#2620).

Circular Buffer:

Fixed bugs #2785,
#3285.

Foreach:

Workaround for conflict with Python headers (#3000).

Function:

Optimize the use of small target objects.

Make Boost.Function compile under BOOST_NO_EXCEPTIONS (#2499,
#2494,
#2469,
#2466,
#2900)

Various minor fixes (#2642,
#2847,
#2929
#3012)

Fusion:

Improved compile times for fusion::vector.

Hash:

Automatically configure the float functions using template metaprogramming
instead of trying to configure every possibility manually.

Interprocess:

Windows shared memory is created in Shared Documents folder so that it
can be shared between services and processes

Fixed bugs #2967,
#2973,
#2992,
#3138,
#3166,
#3205.

Intrusive:

Code cleanup in tree_algorithms.hpp and avl_tree_algorithms.hpp

Fixed bug #3164.

MPL:

Added mpl::char_ and mpl::string
for compile-time string manipulation, based on multichar literals (#2905).

Updated MPL Reference Manual.

Bug fixes.

Program.Options:

Support for building with disabled exceptions (#2096).

Unicode parser no longer drops original tokens (#2425).

Fixed crash on user-inserted items in variables_map
(#2782).

Proto:

PrimitiveTransforms have stricter conformance to ResultOf protocol. (Warning:
some invalid code may break.)

Add a sensible default for proto::_default's
template parameter.

Improved default evaluation strategy for pointers to members.

GCC 3.4 portability fixes (#3021).

Work around Visual C++'s non-std-compliant ciso646 macros.

Random:

Made the constructors of all the generators call the copy constructor
when passed a non-const reference.

Changed seeding functions to accept any arithmetic type. As a side-effect,
the exact signature of seed changed for some classes.

Major bug fixes in uniform_int.

Serialization:

Removed deprecated headers: boost/static_warning.hpp,
boost/state_saver.hpp, boost/smart_cast.hpp,
boost/pfto.hpp. Use the the equivalent headers
in the boost/serialization/
directory instead (#3062).

detail::archive_serializer_map should now be
used instead of detail::archive_pointer_iserializer.
For more details see the
library release notes.

Unordered:

Implement emplace for
all compilers, not just ones with rvalue references and variadic templates
(#1978).

Create less buckets by default.

Some minor tweaks for better compiler support (#2908,
#3096,
#3082).

Xpressive:

Works on Visual C++ 10.0 (#3124).

Build System

The default naming of libraries in Unix-like environment now matches system
conventions, and does not include various decorations. Naming of libraries
on Cygwin was also fixed. Support for beta versions of Microsoft Visual Studio
10 was added. With gcc, 64-bit compilation no longer requires that target architecture
be specified.

Updated Tools

Boostbook:

Hide INTERNAL ONLY
enums in doxygen documentation (#3242).

Tweaked appearance of member classes/structs/unions in a class synopsis.

Quickbook:

Support python code snippets (#3029).

Add teletype source mode
(#1202)

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.3 on Ubuntu Linux.

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.

Intel 11.1 on Red Hat Enterprise Linux.

GCC 3.4.3, GCC 4.0.1, GCC 4.2.4, GCC 4.3.3 and GCC 4.4.0 on Red Hat Enterprise
Linux.

GCC 4.3.3 and GCC 4.4.0 with C++0x extensions on Red Hat Enterprise Linux.

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

GCC 4.1.2 on Suse Linux on 64 bit Itanium.

GCC 4.1.2 on 64-bit Redhat Server 5.1.

GCC Open64 4.2.2 on Red Hat Enterprise Linux.

GCC 4.3.4 on Debian unstable.

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

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 10.1, 11.0 on Intel Leopard.

Intel 10.1, 11.0 on Intel Tiger.

GCC 4.0.1, 4.2.1 on Intel Leopard.

GCC 4.0.1 on Intel Tiger.

GCC 4.0.1 on PowerPC Tiger.

Windows:

Visual C++ 7.1 on XP.

Visual C++ 9.0 on XP.

Visual C++ 9.0 on Vista.

Visual C++ 9.0 on Vista 64-bit.

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

Visual C++ 10.0 beta.

Borland 5.9.3, 6.1.0, 6.1.3.

Borland C++ Builder 2007 and 2009.

Intel C++ 11.1, with a Visual C++ 9.0 backend, on Vista 32-bit.

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

GCC 4.3.3 and 4.4.0, on Mingw with C++0x features.

AIX:

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

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.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]