Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Version 1.46.0

Version 1.46.0

February 21st, 2011 20:36 GMT

Downloads
PlatformFile
unixboost_1_46_0.tar.bz2
boost_1_46_0.tar.gz
windowsboost_1_46_0.7z
boost_1_46_0.zip

New Libraries

  • Icl: Interval Container Library, interval sets and maps and aggregation of associated values, from Joachim Faulhaber.

Updated Libraries

  • Array:
    • Added support for cbegin/cend (#4761)
    • Fixed a problem with the Sun compiler (#4757)
  • Asio:
    • Fixed an integer overflow problem that occurs when ip::address_v4::broadcast() is used on 64-bit platforms.
    • Fixed a problem on older Linux kernels (where epoll is used without timerfd support) that prevents timely delivery of deadline_timer handlers, after the program has been running for some time (#5045).
  • Bind:
    • make_adaptable now documented (#4532)
  • Concept Check:
    • fixed warnings with self-assignment (#4918)
  • Filesystem:
    • Version 3 of the library is now the default.
    • IBM vacpp: Workaround for compiler bug affecting iterator_facade. (#4912)
    • Verify, clarify, document that <boost/config/user.hpp> can be used to specify BOOST_FILESYSTEM_VERSION. (#4891)
    • Replaced C-style assert with BOOST_ASSERT.
    • Undeprecated unique_path(). Instead, add a note mentioning the workaround for lack of thread safety and possible change to cwd. unique_path() is just too convenient to deprecate!
    • Cleared several GCC warnings.
    • Changed V2 code to use BOOST_THROW_EXCEPTION.
    • Windows: Fix status() to report non-symlink reparse point correctly.
    • Add symlink_option to recursive_directory_iterator, allowing control over recursion into directory symlinks. Note that the default is changed to not recurse into directory symlinks.
    • Reference documentation cleanup, including fixing missing and broken links, and adding missing functions.
    • Miscellaneous implementation code cleanup.
  • Fusion:
    • vector copy constructor now copies sequence members in the same order on different platforms (#2823)
  • Graph:
  • Hash:
    • Support for std::type_index (#4756).
    • Avoid -Wconversion warnings.
  • Iostreams:
    • Use BOOST_ASSERT instead of assert.
    • Fixed flush regression (#4590).
  • Iterator:
    • fixed problem with implicit_cast (#3645)
  • Math:
    • Added Wald, Inverse Gaussian and geometric distributions.
    • Added information about configuration macros.
    • Added support for mpreal as a real-numered type.
  • Meta State Machine:
  • Optional:
    • Updated test results with information about expected failures (#2294)
  • Pool:
    • Now can set a max_size for pool (#2696)
    • boost/pool/pool.hpp uses reinterpret_cast instead of static_cast (#2941)
    • boost::pool_allocator now works with vector of vectors (#386)
    • Boost pool is now compatible with Microsoft memory leak detection (#4346)
  • Program Options:
    • Fixed errors in examples in docs (#3992, #4858)
    • Now takes argv as const (#3909)
  • Proto:
    • Breaking change: boost/proto/core.hpp no longer defines functional::pop_front and functional::reverse, which have moved to their own headers under boost/proto/functional
    • Add callable wrappers for more Fusion algorithms (including fusion::at); and callable wrappers for some std utilities like make_pair, first and second, all under the new boost/proto/functional directory
    • Allow transforms to be specified separately from a grammar
    • proto::matches preserves domain-specific expression wrappers
    • Fix ADL issue with operator, in proto::and_ transform
    • Fix handling of grammar checking in expressions involving multiple domains (#4675)
    • Fix ambiguous operator<< in proto::display_expr (#4910)
    • fusion::is_sequence answers true for Proto expressions (#5006)
    • Eliminate -Wundef GCC warning in boost/proto/fusion.hpp (#5075)
  • Signals:
    • gcc warning cleanup (#4365)
  • Spirit:
    • Spirit V2.4.2, see the 'What's New' section for details.
  • Tokenizer:
    • isspace/ispunct was called with wrong character type (#4791)
  • Unordered:
    • Avoid using operator& with the value type.
    • Avoid -Wconversion warnings.
  • Wave:

Updated Tools

  • Boostbook:
    • Better support for attributes on root elements - including lang.
  • Inspect:
    • Check that Boost headers do not use C's assert macro.
  • Quickbook:
    • Add support for lang attribute in documentation info.
    • Improved anchors.
    • Support import, include and xinclude in conditional phrases.
    • Uses Filesystem 3.

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.4.5, 4.5.2,
    • GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0, 4.5.2
    • Intel: 10.1, 11.0, 11.1
    • Clang: 2.8
    • Pathscale: 3.2.
  • OS X:
    • GCC: 4.0.1, 4.2.1, 4.4
    • GCC, C++0x mode: 4.4.
    • Intel: 11.1
  • Windows:
    • Visual C++: 7.1, 8.0, 9.0 and 10.0.
    • GCC, mingw: 4.4.0.
  • FreeBSD:
    • GCC: 4.2.1, 64 bit.

Boost's additional test compilers include:

  • Linux:
    • GCC: 3.4.6, 4.2.4, 4.3.4, 4.3.5, 4.4.3, 4.4.5, 4.5.0, 4.5.2
    • GCC, C++0x mode: 4.3.4, 4.4.3, 4.5.0, 4.5.2
    • pgCC 11.1
    • Intel: 10.1, 11.0, 11.1
    • PathScale: 3.2, 4.0
    • Visual Age C++ 10.1
    • Clang from subversion
  • OS X:
    • Intel C++ Compiler: 10.1, 11.0, 11.1
    • GCC: 4.0.1, 4.2.1, 4.4.4
    • GCC, C++0x mode: 4.4.4
    • Clang from subversion
  • Windows:
    • Visual C++: 7.1, 8.0, 9.0, 10.0
    • Visual C++ with STLport: 9.0
    • Visual C++, Windows Mobile 5, with STLport: 9.0
    • GCC, mingw: 4.4.0, 4.5.1, 4.6.0
    • GCC, mingw, C++0x mode: 4.5.1
    • Borland: 6.1.3 (2009), 6.2.1 (2010)
  • AIX:
    • IBM XL C/C++ Enterprise Edition, V11.1.0.0
  • FreeBSD:
    • GCC 4.2.1, 64 bit
  • Solaris:
    • Sun C++: 5.10

Acknowledgements

Beman Dawes, Eric Niebler, Rene Rivera, Daniel James and Vladimir Prus managed this release.