diff -ur boost_1_60_0/boost/ptr_container/detail/associative_ptr_container.hpp boost_1_60_0_no_auto/boost/ptr_container/detail/associative_ptr_container.hpp --- boost_1_60_0/boost/ptr_container/detail/associative_ptr_container.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/detail/associative_ptr_container.hpp 2016-04-05 08:56:22.709935343 +0800 @@ -103,10 +103,12 @@ : base_type( first, last, hash, pred, a ) { } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > explicit associative_ptr_container( std::auto_ptr r ) : base_type( r ) { } +#endif associative_ptr_container( const associative_ptr_container& r ) : base_type( r.begin(), r.end(), container_type() ) @@ -117,12 +119,14 @@ : base_type( r.begin(), r.end(), container_type() ) { } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > associative_ptr_container& operator=( std::auto_ptr r ) // nothrow { base_type::operator=( r ); return *this; } +#endif associative_ptr_container& operator=( associative_ptr_container r ) // strong { diff -ur boost_1_60_0/boost/ptr_container/detail/reversible_ptr_container.hpp boost_1_60_0_no_auto/boost/ptr_container/detail/reversible_ptr_container.hpp --- boost_1_60_0/boost/ptr_container/detail/reversible_ptr_container.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/detail/reversible_ptr_container.hpp 2016-04-05 09:00:04.859678452 +0800 @@ -337,11 +337,13 @@ : c_( a ) { } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > explicit reversible_ptr_container( std::auto_ptr clone ) { swap( *clone ); } +#endif reversible_ptr_container( const reversible_ptr_container& r ) { @@ -354,12 +356,14 @@ constructor_impl( r.begin(), r.end(), std::forward_iterator_tag() ); } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > reversible_ptr_container& operator=( std::auto_ptr clone ) // nothrow { swap( *clone ); return *this; } +#endif reversible_ptr_container& operator=( reversible_ptr_container r ) // strong { @@ -568,12 +572,13 @@ return res; } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( iterator before, std::auto_ptr x ) { return insert( before, x.release() ); } - +#endif iterator erase( iterator x ) // nothrow { BOOST_ASSERT( !empty() ); @@ -632,12 +637,13 @@ return boost::ptr_container_detail::move( old ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > auto_type replace( iterator where, std::auto_ptr x ) { return replace( where, x.release() ); } - +#endif auto_type replace( size_type idx, Ty_* x ) // strong { enforce_null_policy( x, "Null pointer in 'replace()'" ); @@ -652,12 +658,14 @@ return boost::ptr_container_detail::move( old ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > auto_type replace( size_type idx, std::auto_ptr x ) { return replace( idx, x.release() ); } - +#endif + }; // 'reversible_ptr_container' @@ -677,6 +685,9 @@ // two-phase lookup of template functions // is buggy on most compilers, so we use a macro instead // + +#ifndef BOOST_NO_AUTO_PTR + #define BOOST_PTR_CONTAINER_DEFINE_RELEASE_AND_CLONE( PC, base_type, this_type ) \ explicit PC( std::auto_ptr r ) \ : base_type ( r ) { } \ @@ -700,6 +711,12 @@ return std::auto_ptr( new this_type( this->begin(), this->end() ) ); \ } +#else + +#define BOOST_PTR_CONTAINER_DEFINE_RELEASE_AND_CLONE( PC, base_type, this_type ) + +#endif + #define BOOST_PTR_CONTAINER_DEFINE_COPY_CONSTRUCTORS( PC, base_type ) \ \ template< class U > \ @@ -725,6 +742,7 @@ PC( InputIterator first, InputIterator last, \ const allocator_type& a ) : base_type( first, last, a ) {} + #define BOOST_PTR_CONTAINER_DEFINE_NON_INHERITED_MEMBERS( PC, base_type, this_type ) \ BOOST_PTR_CONTAINER_DEFINE_CONSTRUCTORS( PC, base_type ) \ BOOST_PTR_CONTAINER_DEFINE_RELEASE_AND_CLONE( PC, base_type, this_type ) diff -ur boost_1_60_0/boost/ptr_container/ptr_array.hpp boost_1_60_0_no_auto/boost/ptr_container/ptr_array.hpp --- boost_1_60_0/boost/ptr_container/ptr_array.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/ptr_array.hpp 2016-04-05 08:46:32.609925599 +0800 @@ -100,8 +100,10 @@ static_cast( &r[i] ) ); } +#ifndef BOOST_NO_AUTO_PTR explicit ptr_array( std::auto_ptr r ) : base_class( r ) { } +#endif ptr_array& operator=( ptr_array r ) { @@ -109,6 +111,7 @@ return *this; } +#ifndef BOOST_NO_AUTO_PTR ptr_array& operator=( std::auto_ptr r ) { base_class::operator=(r); @@ -132,6 +135,7 @@ } return pa; } +#endif private: // hide some members using base_class::insert; @@ -157,11 +161,13 @@ return boost::ptr_container::move(res); // nothrow } +#ifndef BOOST_NO_AUTO_PTR template< size_t idx, class V > auto_type replace( std::auto_ptr r ) { return replace( r.release() ); } +#endif auto_type replace( size_t idx, U* r ) // strong { @@ -177,11 +183,13 @@ return boost::ptr_container::move(res); // nothrow } +#ifndef BOOST_NO_AUTO_PTR template< class V > auto_type replace( size_t idx, std::auto_ptr r ) { return replace( idx, r.release() ); } +#endif using base_class::at; diff -ur boost_1_60_0/boost/ptr_container/ptr_circular_buffer.hpp boost_1_60_0_no_auto/boost/ptr_container/ptr_circular_buffer.hpp --- boost_1_60_0/boost/ptr_container/ptr_circular_buffer.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/ptr_circular_buffer.hpp 2016-04-05 08:48:51.511820236 +0800 @@ -293,11 +293,13 @@ this->base().push_back( ptr ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > void push_back( std::auto_ptr ptr ) // nothrow { push_back( ptr.release() ); } +#endif void push_front( value_type ptr ) // nothrow { @@ -310,11 +312,13 @@ this->base().push_front( ptr ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > void push_front( std::auto_ptr ptr ) // nothrow { push_front( ptr.release() ); } +#endif iterator insert( iterator pos, value_type ptr ) // nothrow { @@ -334,11 +338,13 @@ return this->base().insert( pos.base(), ptr ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( iterator pos, std::auto_ptr ptr ) // nothrow { return insert( pos, ptr.release() ); } +#endif template< class InputIterator > void insert( iterator pos, InputIterator first, InputIterator last ) // basic @@ -377,12 +383,13 @@ return this->base().rinsert( pos.base(), ptr ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator rinsert( iterator pos, std::auto_ptr ptr ) // nothrow { return rinsert( pos, ptr.release() ); } - +#endif template< class InputIterator > void rinsert( iterator pos, InputIterator first, InputIterator last ) // basic diff -ur boost_1_60_0/boost/ptr_container/ptr_inserter.hpp boost_1_60_0_no_auto/boost/ptr_container/ptr_inserter.hpp --- boost_1_60_0/boost/ptr_container/ptr_inserter.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/ptr_inserter.hpp 2016-04-05 08:50:02.211592949 +0800 @@ -73,6 +73,7 @@ return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class T > ptr_back_insert_iterator& operator=( std::auto_ptr r ) @@ -80,6 +81,7 @@ container->push_back( r ); return *this; } +#endif ptr_back_insert_iterator& operator=( typename PtrContainer::const_reference r ) @@ -133,6 +135,7 @@ return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class T > ptr_front_insert_iterator& operator=( std::auto_ptr r ) @@ -140,7 +143,8 @@ container->push_front( r ); return *this; } - +#endif + ptr_front_insert_iterator& operator=( typename PtrContainer::const_reference r ) { @@ -194,6 +198,7 @@ return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class T > ptr_insert_iterator& operator=( std::auto_ptr r ) @@ -201,6 +206,7 @@ iter = container->insert( iter, r ); return *this; } +#endif ptr_insert_iterator& operator=( typename PtrContainer::const_reference r ) diff -ur boost_1_60_0/boost/ptr_container/ptr_map_adapter.hpp boost_1_60_0_no_auto/boost/ptr_container/ptr_map_adapter.hpp --- boost_1_60_0/boost/ptr_container/ptr_map_adapter.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/ptr_map_adapter.hpp 2016-04-05 08:52:57.813733873 +0800 @@ -260,19 +260,20 @@ const Allocator& a ) : base_type( first, last, hash, pred, a ) { } - + +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > explicit ptr_map_adapter_base( std::auto_ptr clone ) : base_type( clone ) { } - + template< typename PtrContainer > ptr_map_adapter_base& operator=( std::auto_ptr clone ) { base_type::operator=( clone ); return *this; } - +#endif iterator find( const key_type& x ) { return iterator( this->base().find( x ) ); @@ -357,11 +358,13 @@ return boost::ptr_container::move( old ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > auto_type replace( iterator where, std::auto_ptr x ) { return replace( where, x.release() ); } +#endif protected: size_type bucket( const key_type& key ) const @@ -487,23 +490,25 @@ map_basic_clone_and_insert( r.begin(), r.end() ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > ptr_map_adapter( std::auto_ptr r ) : base_type( r ) { } - +#endif ptr_map_adapter& operator=( ptr_map_adapter r ) { this->swap( r ); return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class U > ptr_map_adapter& operator=( std::auto_ptr r ) { base_type::operator=( r ); return *this; } - +#endif using base_type::release; template< typename InputIterator > @@ -550,12 +555,13 @@ return insert_impl( key, x ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > std::pair insert( const key_type& key, std::auto_ptr x ) { return insert_impl( key, x.release() ); } - +#endif template< class F, class S > iterator insert( iterator before, ptr_container_detail::ref_pair p ) // strong { @@ -577,12 +583,14 @@ return insert_impl( before, key, x ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( iterator before, const key_type& key, std::auto_ptr x ) // strong { return insert_impl( before, key, x.release() ); } - +#endif + template< class PtrMapAdapter > bool transfer( BOOST_DEDUCED_TYPENAME PtrMapAdapter::iterator object, PtrMapAdapter& from ) // strong @@ -736,9 +744,11 @@ map_basic_clone_and_insert( r.begin(), r.end() ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > explicit ptr_multimap_adapter( std::auto_ptr r ) : base_type( r ) { } +#endif ptr_multimap_adapter& operator=( ptr_multimap_adapter r ) { @@ -746,12 +756,14 @@ return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class U > ptr_multimap_adapter& operator=( std::auto_ptr r ) { base_type::operator=( r ); return *this; } +#endif using base_type::release; @@ -799,12 +811,13 @@ return insert_impl( key, x ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( const key_type& key, std::auto_ptr x ) { return insert_impl( key, x.release() ); } - +#endif template< class F, class S > iterator insert( iterator before, ptr_container_detail::ref_pair p ) // strong { @@ -820,11 +833,13 @@ return insert_impl( before, key, x ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( iterator before, const key_type& key, std::auto_ptr x ) // strong { return insert_impl( before, key, x.release() ); } +#endif template< class PtrMapAdapter > void transfer( BOOST_DEDUCED_TYPENAME PtrMapAdapter::iterator object, diff -ur boost_1_60_0/boost/ptr_container/ptr_sequence_adapter.hpp boost_1_60_0_no_auto/boost/ptr_container/ptr_sequence_adapter.hpp --- boost_1_60_0/boost/ptr_container/ptr_sequence_adapter.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/ptr_sequence_adapter.hpp 2016-04-05 08:53:42.107390366 +0800 @@ -219,24 +219,26 @@ : base_type( r, tag ) { } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > explicit ptr_sequence_adapter( std::auto_ptr clone ) : base_type( clone ) { } - +#endif ptr_sequence_adapter& operator=( const ptr_sequence_adapter r ) { this->swap( r ); return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > ptr_sequence_adapter& operator=( std::auto_ptr clone ) { base_type::operator=( clone ); return *this; } - +#endif ///////////////////////////////////////////////////////////// // modifiers ///////////////////////////////////////////////////////////// @@ -250,12 +252,14 @@ ptr.release(); // nothrow } +#ifndef BOOST_NO_AUTO_PTR template< class U > void push_back( std::auto_ptr x ) { push_back( x.release() ); } - +#endif + void push_front( value_type x ) { this->enforce_null_policy( x, "Null pointer in 'push_front()'" ); @@ -265,12 +269,13 @@ ptr.release(); // nothrow } +#ifndef BOOST_NO_AUTO_PTR template< class U > void push_front( std::auto_ptr x ) { push_front( x.release() ); } - +#endif auto_type pop_back() { BOOST_ASSERT( !this->empty() && diff -ur boost_1_60_0/boost/ptr_container/ptr_set_adapter.hpp boost_1_60_0_no_auto/boost/ptr_container/ptr_set_adapter.hpp --- boost_1_60_0/boost/ptr_container/ptr_set_adapter.hpp 2015-08-26 02:16:33.000000000 +0800 +++ boost_1_60_0_no_auto/boost/ptr_container/ptr_set_adapter.hpp 2016-04-05 08:55:59.407927095 +0800 @@ -182,23 +182,27 @@ : base_type( r ) { } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > explicit ptr_set_adapter_base( std::auto_ptr clone ) : base_type( clone ) { } - +#endif + ptr_set_adapter_base& operator=( ptr_set_adapter_base r ) { this->swap( r ); return *this; } +#ifndef BOOST_NO_AUTO_PTR template< typename PtrContainer > ptr_set_adapter_base& operator=( std::auto_ptr clone ) { base_type::operator=( clone ); return *this; } +#endif using base_type::erase; @@ -385,11 +389,12 @@ : base_type( r ) { } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > explicit ptr_set_adapter( std::auto_ptr clone ) : base_type( clone ) { } - +#endif template< class U, class Set, class CA, bool b > ptr_set_adapter& operator=( const ptr_set_adapter& r ) { @@ -397,12 +402,13 @@ return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class T > void operator=( std::auto_ptr r ) { base_type::operator=( r ); } - +#endif std::pair insert( key_type* x ) // strong { this->enforce_null_policy( x, "Null pointer in 'ptr_set::insert()'" ); @@ -415,12 +421,13 @@ return std::make_pair( iterator( res.first ), res.second ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > std::pair insert( std::auto_ptr x ) { return insert( x.release() ); } - +#endif iterator insert( iterator where, key_type* x ) // strong { @@ -434,12 +441,14 @@ return iterator( res); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( iterator where, std::auto_ptr x ) { return insert( where, x.release() ); } - +#endif + template< typename InputIterator > void insert( InputIterator first, InputIterator last ) // basic { @@ -585,11 +594,12 @@ : base_type( r ) { } +#ifndef BOOST_NO_AUTO_PTR template< class PtrContainer > explicit ptr_multiset_adapter( std::auto_ptr clone ) : base_type( clone ) { } - +#endif template< class U, class Set, class CA, bool b > ptr_multiset_adapter& operator=( const ptr_multiset_adapter& r ) { @@ -597,23 +607,26 @@ return *this; } +#ifndef BOOST_NO_AUTO_PTR template< class T > void operator=( std::auto_ptr r ) { base_type::operator=( r ); } - +#endif iterator insert( iterator before, key_type* x ) // strong { return base_type::insert( before, x ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( iterator before, std::auto_ptr x ) { return insert( before, x.release() ); } - +#endif + iterator insert( key_type* x ) // strong { this->enforce_null_policy( x, "Null pointer in 'ptr_multiset::insert()'" ); @@ -625,11 +638,13 @@ return iterator( res ); } +#ifndef BOOST_NO_AUTO_PTR template< class U > iterator insert( std::auto_ptr x ) { return insert( x.release() ); } +#endif template< typename InputIterator > void insert( InputIterator first, InputIterator last ) // basic