Version 1.63.0
December 26th, 2016 23:43 GMT
Documentation
Third Party Downloads
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_freefor 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.
              
 
- 
Container:
- 
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::vectorbuggy constructors (Thanks
                to Lee Clagett).
- 
BOOST_FUSION_ADAPT*andBOOST_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:
- 
Interprocess:
- 
Intrusive:
- 
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_namemethod.
 
- 
                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
                anoptional, just
                like instd::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_elementandlexicographicmodifiers ofBOOST_TESTcan also be applied to string comparison
- 
                Breaking change: colons that appear in test case names are replaced
                with underscores
              
- 
                Bug fixes
                
 
- 
TypeIndex:
- 
                Added runtime_castto the library as an emulation ofdynamic_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_ttype tounsigned 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_traitswhere 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:
          
- 
          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:
          
- 
          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.