Version 1.53.0
February 4th, 2013 18:29 GMT
Documentation
New Libraries
- Atomic: - 
  C++11-style atomic<>,
          from Helge Bahmann, maintained by Tim Blechmann.
 
- Coroutine: - 
   library,
          from Oliver Kowalke.
 
- Lockfree: - 
   data structures,
          from Tim Blechmann.
 
- Multiprecision: - 
  Extended
          precision arithmetic types for floating point, integer and rational arithmetic
          from John Maddock and Christopher Kormanyos.
 
- Odeint: - 
  Solving ordinary
          differential equations, from Karsten Ahnert and Mario Mulansky.
 
News
      This release contains a fix for ticket #7743, in Boost.Locale. For more
      details, see the security
      notice.
    
Updated Libraries
- 
Algorithm:
- 
                Fixed non-ASCII char in comment (#7781).
              
- 
                Updated the Knuth-Morris-Pratt docs (#7656).
              
 
- 
Array:
- 
                Added support for boost::get and std::get (#7652)
              
 
- 
Asio:
- 
                Fixed some 64-to-32-bit conversion warnings (#7459).
              
- 
                Fixed some small errors in documentation and comments (#7761).
              
- 
                Fixed an error in the example embedded in basic_socket::get_option's
                documentation (#7562).
- 
                Changed to use longrather thanintfor
                SSL_CTX options, to match OpenSSL (#7209).
- 
                Changed to use _snwprintfto address a compile error due to the changedswprintfsignature in recent versions of MinGW (#7373).
- 
                Fixed a deadlock that can occur on Windows when shutting down a pool
                of io_servicethreads
                due to running out of work (#7552).
- 
                Enabled the noexceptqualifier for error categories (#7797).
- 
                Changed UNIX domain socket example to treat errors from acceptas non-fatal (#7488).
- 
                Added a small block recycling optimisation to improve default memory
                allocation behaviour.
              
 
- 
Bimap:
- 
                Refactor map_view_iterator to improve error messages.
              
- 
                Fixed replace_(left/right/key/data) bug when using relations with
                info.
              
- 
                Fixed vector_of and list_of views assign(size_type,value_type)bug.
- 
                Fixed vector_of views operator[](size_type)andat(size_type)functions return value.
 
- 
Chrono:
- 
Deprecated:
- 
                      The chrono i/o version included in Boost.Chrono 1.2.x has been
                      completly refactored in version 2.0.0
                    
- 
                      chrono I/O: The manipulators __duration_short, __duration_long
                      are depreceated. You should use the parameterized form __duration_fmt
                      or the renamed manipulators __duration_symbol and __duration_prefix
                      instead.
                    
- 
                      chrono I/O: The __duration_punct<> facet is depreceated.
                      You should use the __get_duration_style free function to get
                      the informations and use the __duration_units facet for localization
                      purposes.
                    
- 
                      When BOOST_CHRONO_VERSION==2 the preceding deprecated functions
                      are not available.
                    
 
- 
Fixes:
- 
#7546
                      time_point<system_clock> output version 2 fails to compile
                    
- 
#7547
                      time_point<system_clock> input version 2 fails to compile
                    
- 
#7868
                      chrono_io parses time incorrectly (1.53 and 1.52)
                    
 
 
- 
Container:
- 
                Fixed bug #7650.
              
- 
                Improved vector's
                insertion performance.
- 
                Changed again experimental multiallocation interface for better performance
                (still experimental).
              
- 
                Added no exception support for those willing to disable exceptions
                in their compilers.
              
- 
                Fixed GCC -Wshadow warnings.
              
- 
                Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
              
 
- 
Context:
- 
                Support for iOS on ARM and MacOS X on x86 (32bit) added.
              
- 
                Support for SEH Overwrite Protection on Win32.
              
 
- 
Geometry:
- 
Bugfixes
- 
                      avoid generating output polygons with interior rings below
                      minimum size (e.g. one or two points)
                    
- 
geometry::disjointfor degenerate segments
                      (patched by Karsten Ahnert)
- 
                      problem in geometry::differencefor missing handling tangency, reported by H2
- 
                      fixed geometry::for_eachfor use with Lambda's
- 
                      fixed geometry::comparable_distancepoint-linestring (and -range, -polygon)
 
- 
Additional functionality
- 
                      combinations for geometry::disjoint:
                      point/ring, point/polygon, point/multi_polygon
- 
                      combinations for geometry::intersects:
                      point/ring, point/polygon, point/multi_polygon
 
- 
Internal changes
- 
                      updates in specializations/not_implemented for various algorithms
                      (as in an earlier version, these changes are still going on;
                      they take care for simplified structs, better error reporting,
                      and automatized documentation)
                    
- 
                      fixes in unit tests
                    
 
 
- 
GIL:
- 
                Fixed self-assignment warnings (#4919).
              
 
- 
Graph:
- 
                Fixed the following bugs from Trac: #3468, #4386, #5269,
                #7428, #7457, #7467, #7600, #7648, #7684,
                #7728, #7741, #7766, #7771, #7773, #7780,
                #7787, #7801
    plus other bugs not in Trac.
              
- 
                Added support for reading from GraphML files containing multiple
                graphs.
              
- 
                Added versions of A* search specifically for trees, removing the
                need for a color map when it is acceptable to visit the same vertex
                multiple times.
              
- 
                Added VF2 subgraph isomorphism algorithm (contributed by Flavio De
                Lorenzi).
              
 
- 
Hash:
- 
                Add support for boost::int128_typeandboost::uint128_typewhere available.
- 
                On platforms that are known to have standard floating point functions,
                don't use the automatic detection (#7221, #7470).
              
 
- 
Interprocess:
- 
                Fixed GCC -Wshadow warnings.
              
- 
                Experimental multiple allocation interface improved and changed again.
                Still unstable.
              
- 
                Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
              
- 
ABI breaking: changed node pool allocators internals
                for improved efficiency.
              
- 
                Fixed bug #7795.
              
 
- 
Intrusive:
- 
                Fixed bugs #7174,
                #7529,
                #7815.
              
- 
                Fixed GCC -Wshadow warnings.
              
- 
                Added missing explicitkeyword in several intrusive container constructors.
- 
                Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
              
- 
                Small documentation fixes.
              
 
- 
Lexical cast:
- 
                New character type detection algorithm for user defined types #6786.
              
- 
                Documentation updates (#7582, #7831).
              
- 
                Fixed bugs with std::array #7799.
              
- 
                Fixed compilation with -ftrapv and numeric to numeric conversions
                #7814.
              
 
- 
Locale:
- 
                Security related bug fix, some invalid UTF-8 sequences where accepted
                as valid #7743
- 
                Invalid Windows codepage names used #7386
- 
                Fixed missing documentation, caused by a error in Doxygen formatting
                #7734
- 
                Fixed missing std:: in some places #7701
- 
                Spelling, grammar, typos fixes #7368, #7762
 
- 
Math:
- 
                Fixed issues #7325,
                #7415,
                #7416,
                #7183,
                #7649,
                #7694,
                #4445
                and #7492.
              
- 
                Fixed mistake in calculating pooled standard deviation in two-sample
                students t example #7402.
              
- 
                Improve complex acos/asin/atan, see #7290,
                #7291.
              
- 
                Improve accuracy in some corner cases of cyl_bessel_j and gamma_p/gamma_q
                thanks to suggestions from Rocco Romeo.
              
- 
                Improve accuracy in Bessel J and Y with integer orders thanks to
                suggestions from Rocco Romeo.
              
 
- 
MinMax:
- 
                Fixed a misuse of the comma operator (#7752).
              
- 
                Updated the docs to fix broken link (#7751).
              
 
- 
Move:
- 
                Better header segregation (bug #6524).
              
- 
                Small documentation fixes
              
- 
                Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.
              
- 
                Fixed #7830,
                #7832.
              
 
- 
Polygon:
- 
Fixes:
- 
#6366 Bug in boost::polygon::containsfor polygon_90 type.
- 
#7678 multiple definitions of bool
boost::polygon::belongs(...)by multiple#include.
 
- 
Internal changes:
- 
                      refactored point/segment/interval data/concept/traits.
                    
- 
                      added unit tests for point and interval data/concept/traits.
                    
- 
                      simplified transform.hppto operate only in 2D.
- 
                      removed point_3d data/concept/traits.
                    
 
 
- 
Random:
- 
                Now compiles with exceptions disabled (#5399).
              
 
- 
Range:
- 
Bug fixes:
- 
#5603 the "range/any_range.hpp" header is not
                      self-sufficient
                    
- 
#6103 boost::range_detail vs. boost::range::range_detail
                      compiler error
                    
 
- 
Documentation fixes:
 
- 
Ratio:
- 
Fixes:
- 
#7616
                      br_mul::nan - warning C4293: '<<' : shift count negative
                      or too big, undefined behavior`.
                    
 
 
- 
Regex:
   Fixed Issues: #7744,
          #7644.
        
- 
Smart Pointers:
- 
New Features:
- 
                      Glen Fernandes provided implementations of make_shared and
                      allocate_shared for arrays. They achieve a single allocation
                      for an array that can be initialized with constructor arguments
                      or initializer lists as well as overloads for default initialization
                      and no value initialization. See the 'make_shared
                      and allocate_shared for arrays' page for more information.
                    
- 
shared_ptrcan now be used to hold a pointer to a dynamically allocated
                      array. This is accomplished by using an array type (T[]orT[N])
                      as the template parameter.
- 
                      Smart pointers now use explicit
operator boolon C++11 compilers. This can break code that passes a smart
                      pointer to a function taking abool,
                      or that returns a smart pointer from a function with aboolreturn type. Please usep !=
0or!!pin such cases.
 
 
- 
StringAlgo:
- 
                Fixed a bug where it wouldn't find overlapping patterns (#7784).
              
- 
                Disambiguated some calls to insert (#7346).
              
 
- 
Thread:
- 
Deprecated features:
- 
                      Deprecated features since boost 1.53 will be available only
                      until boost 1.58.
                    
- 
                      C++11 compliance: packaged_task<R> is deprecated, use
                      instead packaged_task<R()>.
                    
- 
#7537
                      deprecate Mutex::scoped_lock and scoped_try_lock and boost::condition
                    
 
- 
New Features:
- 
#6270
                      C++11 compliance: Add thread constructor from movable callable
                      and movable arguments
                    
- 
#7279
                      C++11 compliance: Add noexcept in system related functions
                    
- 
#7280
                      C++11 compliance: Add promise::...at_thread_exit functions
                    
- 
#7281
                      C++11 compliance: Add ArgTypes to packaged_task template.
                    
- 
#7282
                      C++11 compliance: Add packaged_task::make_ready_at_thread_exit
                      function
                    
- 
#7412
                      C++11 compliance: Add async from movable callable and movable
                      arguments
                    
- 
#7413
                      C++11 compliance: Add async when the launch policy is deferred.
                    
- 
#7414
                      C++11 compliance: future::get post-condition should be valid()==false.
                    
- 
#7422
                      Provide a condition variable with zero-overhead performance
                      penality.
                    
- 
#7444
                      Async: Add make_future/make_shared_future.
                    
- 
#7540
                      Threads: Add a helper class that join a thread on destruction.
                    
- 
#7541
                      Threads: Add a thread wrapper class that joins on destruction.
                    
- 
#7575
                      C++11 compliance: A future created by async should "join"
                      in the destructor.
                    
- 
#7587
                      Synchro: Add strict_lock and nested_strict_lock.
                    
- 
#7588
                      Synchro: Split the locks.hpp in several files to limit dependencies.
                    
- 
#7590
                      Synchro: Add lockable concept checkers based on Boost.ConceptCheck.
                    
- 
#7591
                      Add lockable traits that can be used with enable_if.
                    
- 
#7592
                      Synchro: Add a null_mutex that is a no-op and that is a model
                      of UpgardeLockable.
                    
- 
#7593
                      Synchro: Add a externally_locked class.
                    
- 
#7594
                      Threads: Allow to disable thread interruptions.
                    
 
- 
Fixed Bugs:
- 
#7464
                      BOOST_TEST(n_alive == 1); fails due to race condition in a
                      regression test tool.
                    
- 
#7657
                      Serious performance and memory consumption hit if condition_variable
                      methods condition notify_one or notify_all is used repeatedly.
                    
- 
#7665
                      this_thread::sleep_for no longer uses steady_clock in thread.
                    
- 
#7668
                      thread_group::join_all() should check whether its threads are
                      joinable.
                    
- 
#7669
                      thread_group::join_all() should catch resource_deadlock_would_occur.
                    
- 
#7671
                      Error including boost/thread.hpp header on iOS.
                    
- 
#7672
                      lockable_traits.hpp syntax error: "defined" token
                      misspelled.
                    
- 
#7798
                      boost::future set_wait_callback thread safety issues.
                    
- 
#7808
                      Incorrect description of effects for this_thread::sleep_for
                      and this_thread::sleep_until.
                    
- 
#7812
                      Returns: cv_status::no_timeout if the call is returning because
                      the time period specified by rel_time has elapsed, cv_status::timeout
                      otherwise.
                    
- 
#7874
                      compile warning: thread.hpp:342: warning: type attributes are
                      honored only at type definition.
                    
- 
#7875
                      BOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED should not
                      be enabled by default.
                    
- 
#7882
                      wrong exception text from condition_variable::wait(unique_lock<mutex>&).
                    
- 
#7890
                      thread::do_try_join_until() is missing a return type.
                    
 
 
- 
Unordered:
- 
                Remove support for the old pre-standard variadic pair constructors,
                and equality implementation. Both have been deprecated since Boost
                1.48.
              
- 
                More internal implementation changes, including a much simpler implementation
                of erase, and removed
                more deprecated config macros.
 
- 
Utility:
- 
                Added string_ref,
                a non-owning reference to a contiguous sequence of characters.
              
 
- 
Variant:
- 
                Added rvalue constructors and rvalue assignment operators (for C++11
                compatible compilers only). Library now can be used with move-only
                types (#7620, #7718).
              
 
- 
Wave:
- 
xpressive:
- 
                Accomodate recent smart pointer changes (#7809).
              
 
Updated Tools
Compilers Tested
      Boost's primary test compilers are:
    
- 
          Linux:
          
- 
                GCC: 4.1.2, 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.2
              
- 
                GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.2
              
- 
                Intel: 11.1, 12.1
              
- 
                LLVM Clang: 2.8
              
- 
                LLVM Clang, with libc++: 3.2
              
 
- 
          OS X:
          
- 
                GCC: 4.4.7
              
- 
                GCC, C++11 mode: 4.4.4
              
- 
                Intel: 11.1, 12.0
              
 
- 
          Windows:
          
- 
          FreeBSD:
          
- 
                GCC: 4.2.1, 32 and 64 bit
              
 
      Boost's additional test compilers include:
    
- 
          Linux:
          
- 
                Cray: 4.6.1
              
- 
                Clang: from subversion
              
- 
                LLVM Clang, with libc++: 3.2
              
- 
                GCC: 4.2.4, 4.4.4, 4.5.3, 4.6.3, 4.7.1
              
- 
                GCC, C++11 mode: 4.4.4, 4.5.3, 4.6.3, 4.7.1, 4.7.2
              
- 
                pgCC: 11.9
              
- 
                Intel: 10.1, 11.1, 12.1
              
- 
                Intel, C++11 mode: 13.0.1
              
- 
                Visual Age:
              
 
- 
          OS X:
          
- 
                Clang: from subversion
              
- 
                Clang, C++11 mode: from subversion
              
- 
                Intel: 11.1, 12.0
              
- 
                GCC: 4.4.7
              
- 
                GCC, C++11 mode: 4.4.4
              
 
- 
          Windows:
          
- 
                Visual C++: 10.0, 11.0
              
- 
                Visual C++ with STLport: 9.0
              
- 
                Visual C++, Windows Mobile 5, with STLport: 9.0
              
 
- 
          AIX:
          
- 
                IBM XL C/C++ Enterprise Edition: V12.1.0.1
              
 
Acknowledgements
Beman Dawes, Eric Niebler,
      Rene Rivera, Daniel James,
      Vladimir Prus and Marshall Clow managed this release.