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

Version 1.63.0

December 26th, 2016 23:43 GMT

Documentation

Downloads
PlatformFileSHA256 Hash
unixboost_1_63_0.tar.bz2beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0
boost_1_63_0.tar.gzfe34a4e119798e10b8cc9e565b3b0284e9fd3977ec8a1b19586ad1dec397088b
windowsboost_1_63_0.7z25db3956a8d58187ac7a0702cc917e9bab47ff90baafc35e4e789dca1ce5f423
boost_1_63_0.zip97ce6635df1f44653a597343cd5757bb8b6b992beb3720f5fc761e3644bcbe7b

Post-release Patches

  • Atomic:
    • Using 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers can result in generation of incorrect code. This problem is fixed in this commit.

Updated Libraries

  • Atomic:
    • Added the static constant atomic<T>::is_always_lock_free for conformance with C++17. The constant indicates that the given specialization always provides lock-free implementation of atomic operations.
    • Improved support of Oracle Studio on x86 targets.
  • Context:
    • #11687 Xcode (Apple clang) and thread_local
    • #12114 context does not preserve fpu context on ios arm64 devices (fixed for other architecturs too)
    • #12411 fpu registers not preserved with O2 optimizations in Visual Studio (fixed for other architecturs too)
    • #12551 building boost on arm64 causes error: unknown directive
    • reduced signatur for ontop-functions
    • unit-test for private fcontext-API
    • performance-test for ucontext and fcontext fixed
  • Fiber:
    • unbounded_channel and bounded_channel marked as deprecated
    • new classes buffered_channel and unbuffered_channel
    • performance improved
  • Fusion:
    • Fixed fusion::vector buggy constructors (Thanks to Lee Clagett).
    • BOOST_FUSION_ADAPT* and BOOST_FUSION_DEFINE* now allow empty structures. (#6592)
    • BOOST_FUSION_DEFINE* allows move constructor and assignment. (#10099)
    • Adaptor for std::array (Thanks to Mateusz Łoskot). (#8241)
    • Fixed returning temporary variable warnings on MSVC.
  • Geometry:
    • Improvements:
      • Intersection: take care that output is valid (work in progres, not yet finished - but more is valid)
    • Solved tickets:
      • #12289 Avoid warning/compilation error for std::cout
      • #12412 Invalid result of covered_by() with geographic Points and Boxes
      • #12413 rtree::remove() not working properly with geographic Points
  • Hash:
    • Fixed some warnings.
  • Lexical Cast:
    • Fixed issue found by -fsanitize=undefined #21
  • Log:
    • General changes:
      • Removed the previously deprecated type_info_wrapper.
    • New features:
      • Added a way to access the current file name from the text file sink backend. The file name can be obtained with the get_current_file_name method.
    • Bug fixes:
      • Fixed compilation errors for Android API prior to version 21.
      • Streaming operators now take scalar types and enums by value. This allows to output static constants and bitfields directly into formatting stream and record stream. (#11998)
      • Fixed auto-detection of native syslog API. (#12600)
      • In UDP socket based syslog backend implementation, changed the syslog message format for better compliance with RFC3164.
      • File close handler installed in text file sink backend is no longer called if the file is not open yet.
    • See changelog for more details.
  • Metaparse:
    • Improved the implementation of BOOST_METAPARSE_STRING
      • The maximal string length limit has been increased to 2048
      • The maximal string length limit can be extended beyond 2048 by regenerating some of the Boost headers using a script (part of the library)
      • The string length limit can be changed within a compilation unit
  • Move:
    • Improved experimental adaptive sort algorithm performance
    • Activate BOOST_MOVE_FORCEINLINE
  • Optional:
    • Added two new in-place constructors. They work similarly to emplace() functions: they initialize the contained value by perfect-forwarding the obtained arguments. One constructor always initializes the contained value, the other based on a boolean condition.
    • Syntax o = {} now correctly un-initializes an optional, just like in std::optional.
    • Fixed optional<optional<T>&> initialization. (#12203)
    • Optional constructors are sfinae-friendly. This fixes interaction with std::tuple. (#12563)
  • Phoenix:
    • Most of modules now support C++11 variadic templates.
    • Fixed type deduction failure with result type.
    • Suppress unused warnings.
    • Fixed too few arguments error on binary math functions.
    • Added workarounds for older compiler.
  • Python:
    • Added (basic) support for C++11 (std::shared_ptr, std::unique_ptr)
    • Incorporated an extension API to wrap NumPy
    • Removed obsolete bits and pieces
  • Test:
    • Boost.test v3.4 see the Change log section for more details.
    • New feature: per_element and lexicographic modifiers of BOOST_TEST can also be applied to string comparison
    • Breaking change: colons that appear in test case names are replaced with underscores
    • Bug fixes
  • TypeIndex:
    • Added runtime_cast to the library as an emulation of dynamic_cast. Thanks to Chris Glover for the implementation. See runtime_cast reference for more info.
    • Internals of the CTTI were made more platform independant, due to change of the std::size_t type to unsigned int.
  • Units:
    • Fix inspection warnings
    • updated physico-chemical constants to CODATA 2014 values
    • define biot correctly as 10 Ampere
  • Unordered:
    • Fix an exception safety issue in assignment.
    • Use std::allocator_traits where available, and support modern style rebind (#12459).
    • Add some allocator aware constructors.
    • Use the hint iterator in emplace_hint.
    • Fixed some warnings.
    • See the changelog for more details.

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • Clang: 3.0, 3.8.1
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
    • Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
    • Clang, C++1z: 3.8.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.2.0
    • GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
    • GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0
    • Intel: 16.0, 17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14: 16.0, 17.0
  • OS X:
    • Apple Clang: 7.0.2
    • Apple Clang, C++11: 7.0.2
  • Windows:
    • GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
    • GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
    • GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
  • Android:
    • Clang: 3.6, 3.7, 3.8
    • GCC: 4.9, 5.4, 6.2
  • QNX:
    • QCC: 4.4.2
  • SunOS:
    • Oracle Solaris Studio: 12.5
    • Oracle Solaris Studio, C++11: 12.5

Boost's additional test compilers include:

  • Linux:
    • Clang: 3.0, 3.8.1
    • Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 3.8.1
    • Clang, C++14: 3.5, 3.6, 3.7, 3.8.1
    • Clang, C++1z: 3.8.1
    • GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.2, 5.2.0, 6.1.1, 6.2.0
    • GCC, C++11: 4.4.7, 4.7.2, 4.7.3, 4.8.5, 4.9.3, 5.2.0, 6.1.1, 6.2.0
    • GCC, C++14: 5.2.0, 5.3.0, 6.1.1, 6.2.0, 7.0.0 (experimental)
    • GCC, C++1z: 6.1.1
    • Intel: 16.0, 17.0
    • Intel, C++11: 16.0, 17.0
    • Intel, C++14: 16.0, 17.0
  • OS X:
    • Apple Clang: 7.0.2
    • Apple Clang, C++11: 7.0.2
  • Windows:
    • GCC, C++03, mingw: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0
    • GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
    • GCC, C++14, mingw: 4.9.3, 5.1.0, 5.2.0, 5.3.0, 6.1.0
    • Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
  • Android:
    • Clang: 3.6, 3.7, 3.8
    • GCC: 4.9, 5.4, 6.2
    • GCC,C++14: 6.1.0
  • QNX:
    • QCC: 4.4.2
  • SunOS:
    • Oracle Solaris Studio: 12.5
    • Oracle Solaris Studio, C++11: 12.5

Acknowledgements

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