What's new in 1.46.0

  • New libraries

    Icl adds interval container support for sets, maps, and aggregated values.

  • Dependencies

    Added 5 dependency additions across 3 libraries; removed 1 dependency across 1 library.

  • Security & reliability

    Fixed integer overflow in ip::address_v4::broadcast and replaced asserts with BOOST_ASSERT throughout.

  • Developer experience

    Array now supports cbegin/cend; recursive_directory_iterator gains symlink_option; docs cleaned up.

Release notes version 1.46.0

Version 1.46.0

February 21st, 2011 20:36 GMT

Documentation

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.

All Contributors


Join the Boost Developers Mailing List

Get the latest on releases, features, security patches, fixes and all major announcements.
Want to fix bugs, review code, maintain libraries, and propose new features?
Read our contributors guide and join the Boost community.

Boost is publicly released three times a year in April, August, and December. Each release has updates to existing libraries, and any new libraries that have passed the rigorous acceptance process.

Decorative illustration