Boost
Releases
arrow_drop_down
Prior Release (1.51.0)
Platform File SHA256 Hash
Unix boost_1_51_0.tar.bz2 fb2d2....69696
boost_1_51_0.tar.gz b0f7e....c23f5
Windows boost_1_51_0.7z 4ce17....56e12
boost_1_51_0.zip fa8af....83749

Version 1.51.0

August 20th, 2012 23:00 GMT

Documentation

Patches

  • Locale Patch - Fixes a bug which causes boost::locale::utf::utf_traits to accept some invalid UTF-8 sequences, which is a possible security flaw.

New Libraries

  • Context:
    • switching library, from Oliver Kowalke.

Updated Libraries

  • Algorithm:
    • Fixed is_sorted_until ; now matches the c++11 standard behavior on ranges with duplicate values.
    • Added range support for the rest of the search algorithms.
    • unhex now uses Boost.Exception to signal bad input.
  • Asio:
    • Fixed an incompatibility between ip::tcp::iostream and C++11 (#7162).
    • Decorated GCC attribute names with underscores to prevent interaction with user-defined macros (#6415).
    • Added missing #include <cctype>, needed for some versions of MinGW.
    • Changed to use gcc's atomic builtins on ARM CPUs, when available (#7140).
    • Changed strand destruction to be a no-op, to allow strand objects to be destroyed after their associated io_service has been destroyed.
    • Added support for some newer versions of glibc which provide the epoll_create1() function but always fail with ENOSYS (#7012).
    • Changed the SSL implementation to throw an exception if SSL engine initialisation fails (#6303).
    • Fixed another regression in buffered_write_stream (#6310).
    • Implemented various minor performance improvements, primarily targeted at Linux x86 and x86-64 platforms.
  • Config:
    • Deprecated a whole bunch of macros that were c++11 specific, but not named to show that they were c++11 specific. Made new macros with better names, and paired the old macros with the new ones. Updated the documentation to list the deprecated macros.
  • Chrono:
    • #6918 Boost Chrono compilation failure on HP uX due to undefined pthread_getcpuclockid.
    • #6241 boost::chrono compilation problems without std::wstring support.
    • #6987 Documentation & C++11.
    • #7041 time_point.hpp depends on Boost.System.
    • #7042 Avoiding time_point and duration dependency on time.h and CLOCK_REALTIME.
    • #7058 Make it work when BOOST_NO_EXCEPTIONS is defined.
    • #7069 Misspellings in clock_string<thread_clock>.
    • #7081 WinError.h capitalization in boost/detail/win/basic_types.hpp.
  • Geometry:
    • points accessed through a pointer (e.g. in a linestring) should now be specialized without the pointer. In previous versions a type my_point used like linestring<my_point*> had to be specalized like: template<> struct tag<my_point*>. Now the library itself removes the pointer before calling the traits class, so now it should be like: template<> struct tag<my_point>
    • intersection was sometimes wrong for integer points, fixed
    • documentation, order of parameters in simplify was wrong, fixed
    • 7030 spherical distance, fixed (by patch of Karsten Ahnert)
  • Graph:
    • Refactored support for internal and bundled properties in Boost.Graph-provided graph types, and cleaned up named parameter functionality:
      • Enabled old-style (non-bundled) internal properties in compressed_sparse_row_graph.
      • Bundled properties should work correctly for all graph types and adaptors.
    • Bugs fixed:
      • #6993: Typo Bundled Properties document
      • #7002: Problem with initialization of CSR bidirectional graph
      • #7023: Enclose internal type graphml_reader in anonymous namespace
      • Other bugs and warnings not in Trac
  • Hash:
    • Support the standard smart pointers.
    • hash_value now implemented using SFINAE to avoid implicit casts to built in types when calling it.
    • Updated to use the new config macros.
  • Lexical cast:
    • Better performance, less memory usage for boost::array<character_type, N> and std::array<character_type, N> conversions.
    • Fixed bug with volatile input parameter #7157.
  • Math:
    • Updated to use the new config macros.
  • MSM:
  • Proto:
    • Proto transforms get pseudo-parameter pack expansion support for unpacking expressions. See the Release Notes for more information.
  • Ratio:
    • #7075 Workaround for error: the type of partial specialization template parameter constant "n1" depends on another template parameter.
  • Regex:
    • Updated to use the new config macros.
  • Thread:
    • #4258 Linking with boost thread does not work on mingw/gcc 4.5.
    • #4885 Access violation in set_tss_data at process exit due to invalid assumption about TlsAlloc.
    • #6931 mutex waits forwever with Intel Compiler and /debug:parallel
    • #7044 boost 1.50.0 header missing.
    • #7052 Thread: BOOST_THREAD_PROVIDES_DEPRECATED_FEATURES_SINCE_V3_0_0 only masks thread::operator==, thread::operator!= forward declarations, not definitions.
    • #7066 An attempt to fix current_thread_tls_key static initialization order.
    • #7074 Multiply defined symbol boost::allocator_arg.
    • #7078 Trivial 64-bit warning fix on Windows for thread attribute stack size
    • #7089 BOOST_THREAD_WAIT_BUG limits functionality without solving anything
  • Unordered:
    • Fix construction/destruction issue when using a C++11 compiler with a C++03 allocator (#7100).
    • Remove a try..catch to support compiling without exceptions.
    • Adjust SFINAE use to try to supprt g++ 3.4 (#7175).
    • Updated to use the new config macros.
  • Wave:
  • xpressive:
    • Work around buggy wide ctype facet on cygwin and mingw.
    • Work around absence of __isctype on some glibc implementations.
    • op::as shouldn't assume string::iterator != char*.
    • Fix assertion in cpp_regex_traits on libc++, thanks to John Fletcher.

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2, 4.7
    • GCC, C++11 mode: 4.3.4, 4.4.3, 4.5.3, 4.6.2
    • Intel: 11.1, 12.0, 12.1
    • LLVM Clang 2.8
  • OS X:
    • GCC: 4.4
    • GCC, C++11 mode: 4.4
    • Intel: 11.1, 12.0
  • Windows:
    • GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3
    • Visual C++: 8.0, 9.0, 10.0
  • FreeBSD:
    • GCC: 4.2.1, 32 and 64 bit

Boost's additional test compilers include:

  • Linux:
    • Clang: from subversion
    • LLVM Clang: 3.0
    • GCC: 4.2.4, 4.3.4, 4.4.4, 4.4.7, 4.5.3, 4.6.2, 4.6.3, 4.7.0, 4.7.1
    • GCC, C++11 mode: 4.3.4, 4.4.4, 4.5.3, 4.6.3
    • pgCC: 11.9
    • Intel: 10.1, 11.1, 12.0, 12.1
    • Visual Age: 10.1
  • OS X:
    • Clang: from subversion
    • Clang, C++11 mode: from subversion
    • Intel: 11.1, 12.0
    • GCC: 4.4
    • GCC, C++11 mode: 4.4
  • Windows:
    • Visual C++: 8.0, 9.0, 10.0
    • GCC, mingw: 4.4.0, 4.6.3, 4.7.0
  • AIX:
    • IBM XL C/C++ Enterprise Edition: V12.1.0.0
  • FreeBSD:
    • GCC: 4.2.1, 32 and 64 bit
  • Solaris:
    • Sun: 5.10

Acknowledgements

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

Contributors

Marshall Clow
Marshall Clow
Contributor
Daniel James
Daniel James
Contributor
John Maddock
John Maddock
Contributor
Beman Dawes
Beman Dawes
Contributor
Ion Gaztañaga
Ion Gaztañaga
Contributor
Jeremiah Willcock
Jeremiah Willcock
Contributor
Vicente J. Botet Escriba
Vicente J. Botet Escriba
Contributor
Joachim Faulhaber
Joachim Faulhaber
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Oliver Kowalke
Oliver Kowalke
Contributor
Robert Ramey
Robert Ramey
Contributor
Eric Niebler
Eric Niebler
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Lorenzo Caminiti
Lorenzo Caminiti
Contributor
Hartmut Kaiser
Hartmut Kaiser
Contributor
Joel de Guzman
Joel de Guzman
Contributor
Barend Gehrels
Barend Gehrels
Contributor
Christophe Henry
Christophe Henry
Contributor
Tim Blechmann
Tim Blechmann
Contributor
Vladimir Prus
Vladimir Prus
Contributor
Andrey Semashev
Andrey Semashev
Contributor
Frank Mori Hess
Frank Mori Hess
Contributor