|
Boost-Commit : |
From: nesotto_at_[hidden]
Date: 2007-10-25 16:48:00
Author: nesotto
Date: 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
New Revision: 40464
URL: http://svn.boost.org/trac/boost/changeset/40464
Log:
major update of copy-operations and various pending fixes
Text files modified:
trunk/boost/ptr_container/detail/associative_ptr_container.hpp | 33 ++++++++++++--
trunk/boost/ptr_container/detail/reversible_ptr_container.hpp | 44 +++++++++++++++----
trunk/boost/ptr_container/ptr_array.hpp | 42 ++++++++++++++++--
trunk/boost/ptr_container/ptr_deque.hpp | 6 +-
trunk/boost/ptr_container/ptr_list.hpp | 6 +-
trunk/boost/ptr_container/ptr_map.hpp | 24 ++++++++++
trunk/boost/ptr_container/ptr_map_adapter.hpp | 62 +++++++++++++++++++++++++--
trunk/boost/ptr_container/ptr_sequence_adapter.hpp | 49 +++++++++++++++++----
trunk/boost/ptr_container/ptr_set.hpp | 7 ++
trunk/boost/ptr_container/ptr_set_adapter.hpp | 88 +++++++++++++++++++++++++++++++--------
trunk/boost/ptr_container/ptr_vector.hpp | 6 +-
11 files changed, 300 insertions(+), 67 deletions(-)
Modified: trunk/boost/ptr_container/detail/associative_ptr_container.hpp
==============================================================================
--- trunk/boost/ptr_container/detail/associative_ptr_container.hpp (original)
+++ trunk/boost/ptr_container/detail/associative_ptr_container.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -59,7 +59,7 @@
const Allocator& a )
: base_type( comp, a )
{ }
-
+
template< class InputIterator, class Compare, class Allocator >
associative_ptr_container( InputIterator first, InputIterator last,
const Compare& comp,
@@ -77,6 +77,12 @@
BOOST_DEDUCED_TYPENAME Config::allocator_type() )
{ }
+ template< class C, class V >
+ associative_ptr_container( const associative_ptr_container<C,V>& r )
+ : base_type( r.begin(), r.end(), key_compare(),
+ BOOST_DEDUCED_TYPENAME Config::allocator_type() )
+ { }
+
template< class PtrContainer >
associative_ptr_container& operator=( std::auto_ptr<PtrContainer> r ) // nothrow
{
@@ -84,6 +90,14 @@
return *this;
}
+ template< class C, class V >
+ associative_ptr_container& operator=( const associative_ptr_container<C,V>& r ) // strong
+ {
+ associative_ptr_container clone( r );
+ this->swap( clone );
+ return *this;
+ }
+
associative_ptr_container& operator=( const associative_ptr_container& r ) // strong
{
associative_ptr_container clone( r );
@@ -110,17 +124,18 @@
this->remove( before ); // nothrow
iterator res( before ); // nothrow
++res; // nothrow
- this->base().erase( before.base() ); // nothrow
+ this->base().erase( before.base() ); // nothrow
return res; // nothrow
}
size_type erase( const key_type& x ) // nothrow
{
- iterator i( this->base().find( x ) ); // nothrow
+ iterator i( this->base().find( x ) );
+ // nothrow
if( i == this->end() ) // nothrow
return 0u; // nothrow
this->remove( i ); // nothrow
- return this->base().erase( x ); // nothrow
+ return this->base().erase( x ); // nothrow
}
iterator erase( iterator first,
@@ -131,16 +146,22 @@
++res; // nothrow
this->remove( first, last ); // nothrow
- this->base().erase( first.base(), last.base() );// nothrow
+ this->base().erase( first.base(), last.base() ); // nothrow
return res; // nothrow
}
+#ifdef BOOST_NO_SFINAE
+#else
template< class Range >
- iterator erase( const Range& r )
+ BOOST_DEDUCED_TYPENAME boost::disable_if< boost::is_convertible<Range&,key_type&>,
+ iterator >::type
+ erase( const Range& r )
{
return erase( boost::begin(r), boost::end(r) );
}
+#endif
+
protected:
template< class AssociatePtrCont >
Modified: trunk/boost/ptr_container/detail/reversible_ptr_container.hpp
==============================================================================
--- trunk/boost/ptr_container/detail/reversible_ptr_container.hpp (original)
+++ trunk/boost/ptr_container/detail/reversible_ptr_container.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -241,10 +241,6 @@
void remove( I i )
{
null_policy_deallocate_clone( Config::get_const_pointer(i) );
-//#ifndef NDEBUG
-// *i = 0xbadbad;
-//#endif
-
}
template< class I >
@@ -254,7 +250,7 @@
remove( first );
}
- static void enforce_null_policy( Ty_* x, const char* msg )
+ static void enforce_null_policy( const Ty_* x, const char* msg )
{
if( !allow_null )
{
@@ -317,6 +313,13 @@
constructor_impl( r.begin(), r.end(), std::forward_iterator_tag() );
}
+ template< class C, class V >
+ explicit reversible_ptr_container( const reversible_ptr_container<C,V>& r )
+ {
+ constructor_impl( r.begin(), r.end(), std::forward_iterator_tag() );
+ }
+
+
template< class PtrContainer >
reversible_ptr_container& operator=( std::auto_ptr<PtrContainer> clone ) // nothrow
{
@@ -331,6 +334,13 @@
return *this;
}
+ template< class C, class V >
+ reversible_ptr_container& operator=( const reversible_ptr_container<C,V>& r ) // strong
+ {
+ reversible_ptr_container clone( r );
+ swap( clone );
+ return *this;
+ }
// overhead: null-initilization of container pointer (very cheap compared to cloning)
// overhead: 1 heap allocation (very cheap compared to cloning)
template< class InputIterator >
@@ -647,7 +657,6 @@
// is buggy on most compilers, so we use a macro instead
//
#define BOOST_PTR_CONTAINER_DEFINE_RELEASE_AND_CLONE( PC, base_type, this_type ) \
- \
PC( std::auto_ptr<this_type> r ) \
: base_type ( r ) { } \
\
@@ -670,6 +679,19 @@
return std::auto_ptr<this_type>( new this_type( this->begin(), this->end() ) ); \
}
+#define BOOST_PTR_CONTAINER_DEFINE_COPY_CONSTRUCTORS( PC, base_type ) \
+ \
+ template< class U > \
+ PC( const PC<U>& r ) : base_type( r ) { } \
+ \
+ template< class U > \
+ PC& operator=( const PC<U>& r ) \
+ { \
+ base_type::operator=( r ); \
+ return *this; \
+ }
+
+
#define BOOST_PTR_CONTAINER_DEFINE_CONSTRUCTORS( PC, base_type ) \
typedef BOOST_DEDUCED_TYPENAME base_type::iterator iterator; \
typedef BOOST_DEDUCED_TYPENAME base_type::size_type size_type; \
@@ -679,14 +701,16 @@
template< class InputIterator > \
PC( InputIterator first, InputIterator last, \
const allocator_type& a = allocator_type() ) : 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 )
-
- } // namespace 'ptr_container_detail'
+
+#define BOOST_PTR_CONTAINER_DEFINE_SEQEUENCE_MEMBERS( PC, base_type, this_type ) \
+ BOOST_PTR_CONTAINER_DEFINE_NON_INHERITED_MEMBERS( PC, base_type, this_type ) \
+ BOOST_PTR_CONTAINER_DEFINE_COPY_CONSTRUCTORS( PC, base_type )
+
+} // namespace 'ptr_container_detail'
//
// @remark: expose movability of internal move-pointer
Modified: trunk/boost/ptr_container/ptr_array.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_array.hpp (original)
+++ trunk/boost/ptr_container/ptr_array.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -70,9 +70,6 @@
typedef ptr_array<T,N,CloneAllocator>
this_type;
- ptr_array( const this_type& );
- void operator=( const this_type& );
-
public:
typedef std::size_t size_type;
typedef U* value_type;
@@ -86,12 +83,47 @@
ptr_array() : base_class()
{ }
+ ptr_array( const ptr_array& r )
+ {
+ size_t i = 0;
+ for( ; i != N; ++i )
+ this->base()[i] = this->null_policy_allocate_clone(
+ static_cast<T*>( r.base()[i] ) );
+ }
+
+ template< class U >
+ ptr_array( const ptr_array<U,N>& r )
+ {
+ size_t i = 0;
+ for( ; i != N; ++i )
+ this->base()[i] = this->null_policy_allocate_clone(
+ static_cast<U*>( r.base()[i] ) );
+ }
+
ptr_array( std::auto_ptr<this_type> r )
: base_class( r ) { }
- void operator=( std::auto_ptr<this_type> r )
+ ptr_array& operator=( const ptr_array& r )
+ {
+ ptr_array clone( r );
+ this->swap( clone );
+ return *this;
+
+ }
+
+ template< class U >
+ ptr_array& operator=( const ptr_array<U,N>& r )
+ {
+ ptr_array clone( r );
+ this->swap( clone );
+ return *this;
+
+ }
+
+ ptr_array& operator=( std::auto_ptr<this_type> r )
{
base_class::operator=(r);
+ return *this;
}
std::auto_ptr<this_type> release()
@@ -107,7 +139,7 @@
for( size_t i = 0; i != N; ++i )
{
if( ! is_null(i) )
- pa->replace( i, CloneAllocator::allocate_clone( (*this)[i] ) );
+ pa->replace( i, this->null_policy_allocate_clone( &(*this)[i] ) );
}
return pa;
}
Modified: trunk/boost/ptr_container/ptr_deque.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_deque.hpp (original)
+++ trunk/boost/ptr_container/ptr_deque.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -42,9 +42,9 @@
public:
- BOOST_PTR_CONTAINER_DEFINE_NON_INHERITED_MEMBERS( ptr_deque,
- base_class,
- this_type );
+ BOOST_PTR_CONTAINER_DEFINE_SEQEUENCE_MEMBERS( ptr_deque,
+ base_class,
+ this_type );
};
//////////////////////////////////////////////////////////////////////////////
Modified: trunk/boost/ptr_container/ptr_list.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_list.hpp (original)
+++ trunk/boost/ptr_container/ptr_list.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -41,9 +41,9 @@
typedef ptr_list<T,CloneAllocator,Allocator> this_type;
public:
- BOOST_PTR_CONTAINER_DEFINE_NON_INHERITED_MEMBERS( ptr_list,
- base_class,
- this_type );
+ BOOST_PTR_CONTAINER_DEFINE_SEQEUENCE_MEMBERS( ptr_list,
+ base_class,
+ this_type );
public:
using base_class::merge;
Modified: trunk/boost/ptr_container/ptr_map.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_map.hpp (original)
+++ trunk/boost/ptr_container/ptr_map.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -41,8 +41,8 @@
typedef ptr_map<Key,T,Compare,CloneAllocator,Allocator> this_type;
public:
- explicit ptr_map( const Compare& comp = Compare(),
- const Allocator& a = Allocator() )
+ ptr_map( const Compare& comp = Compare(),
+ const Allocator& a = Allocator() )
: base_type( comp, a ) { }
template< class InputIterator >
@@ -55,6 +55,16 @@
BOOST_PTR_CONTAINER_DEFINE_RELEASE_AND_CLONE( ptr_map, base_type,
this_type );
+ template< class U >
+ ptr_map( const ptr_map<Key,U>& r ) : base_type( r )
+ { }
+
+ template< class U >
+ ptr_map& operator=( const ptr_map<Key,U>& r )
+ {
+ base_type::operator=( r );
+ return *this;
+ }
};
@@ -93,6 +103,16 @@
base_type,
this_type );
+ template< class U >
+ ptr_multimap( const ptr_multimap<Key,U>& r ) : base_type( r )
+ { }
+
+ template< class U >
+ ptr_multimap& operator=( const ptr_multimap<Key,U>& r )
+ {
+ base_type::operator=( r );
+ return *this;
+ }
};
//////////////////////////////////////////////////////////////////////////////
Modified: trunk/boost/ptr_container/ptr_map_adapter.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_map_adapter.hpp (original)
+++ trunk/boost/ptr_container/ptr_map_adapter.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -174,10 +174,6 @@
public:
- ptr_map_adapter_base( const allocator_type& a = allocator_type() )
- : base_type(a)
- { }
-
template< class InputIterator >
ptr_map_adapter_base( InputIterator first, InputIterator last,
const allocator_type& a = allocator_type() )
@@ -354,7 +350,7 @@
if( res.second ) // nothrow
ptr.release(); // nothrow
}
-
+
template< class II >
void map_basic_clone_and_insert( II first, II last )
{
@@ -388,10 +384,38 @@
map_basic_clone_and_insert( first, last );
}
+ ptr_map_adapter( const ptr_map_adapter& r )
+ : base_type( key_compare(), allocator_type() )
+ {
+ map_basic_clone_and_insert( r.begin(), r.end() );
+ }
+
+ template< class Key, class U >
+ ptr_map_adapter( const ptr_map_adapter<Key,U>& r )
+ : base_type( key_compare(), allocator_type() )
+ {
+ map_basic_clone_and_insert( r.begin(), r.end() );
+ }
+
template< class U >
ptr_map_adapter( std::auto_ptr<U> r ) : base_type( r )
{ }
+ ptr_map_adapter& operator=( const ptr_map_adapter& r )
+ {
+ ptr_map_adapter clone( r );
+ this->swap( clone );
+ return *this;
+ }
+
+ template< class Key, class U >
+ ptr_map_adapter& operator=( const ptr_map_adapter<Key,U> r )
+ {
+ ptr_map_adapter clone( r );
+ this->swap( clone );
+ return *this;
+ }
+
template< class U >
void operator=( std::auto_ptr<U> r )
{
@@ -571,10 +595,38 @@
map_basic_clone_and_insert( first, last );
}
+ ptr_multimap_adapter( const ptr_multimap_adapter& r )
+ : base_type( key_compare(), allocator_type() )
+ {
+ map_basic_clone_and_insert( r.begin(), r.end() );
+ }
+
+ template< class Key, class U >
+ ptr_multimap_adapter( const ptr_multimap_adapter<Key,U>& r )
+ : base_type( key_compare(), allocator_type() )
+ {
+ map_basic_clone_and_insert( r.begin(), r.end() );
+ }
+
template< class U >
ptr_multimap_adapter( std::auto_ptr<U> r ) : base_type( r )
{ }
+ ptr_multimap_adapter& operator=( const ptr_multimap_adapter& r )
+ {
+ ptr_multimap_adapter clone( r );
+ this->swap( clone );
+ return *this;
+ }
+
+ template< class Key, class U >
+ ptr_multimap_adapter& operator=( const ptr_multimap_adapter<Key,U> r )
+ {
+ ptr_multimap_adapter clone( r );
+ this->swap( clone );
+ return *this;
+ }
+
template< class U >
void operator=( std::auto_ptr<U> r )
{
Modified: trunk/boost/ptr_container/ptr_sequence_adapter.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_sequence_adapter.hpp (original)
+++ trunk/boost/ptr_container/ptr_sequence_adapter.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -153,16 +153,29 @@
BOOST_PTR_CONTAINER_DEFINE_CONSTRUCTORS( ptr_sequence_adapter,
base_type )
-
+
+ template< class U >
+ ptr_sequence_adapter( const ptr_sequence_adapter<U,VoidPtrSeq>& r )
+ : base_type( r )
+ { }
+
template< class PtrContainer >
ptr_sequence_adapter( std::auto_ptr<PtrContainer> clone )
: base_type( clone )
{ }
+ template< class U >
+ ptr_sequence_adapter& operator=( const ptr_sequence_adapter<U,VoidPtrSeq>& r )
+ {
+ base_type::operator=( r );
+ return *this;
+ }
+
template< class PtrContainer >
- void operator=( std::auto_ptr<PtrContainer> clone )
+ ptr_sequence_adapter& operator=( std::auto_ptr<PtrContainer> clone )
{
base_type::operator=( clone );
+ return *this;
}
/////////////////////////////////////////////////////////////
@@ -312,11 +325,6 @@
template< class InputIterator >
void assign( InputIterator first, InputIterator last ) // strong
{
-//#ifdef BOOST_NO_SFINAE
-//#else
-// BOOST_STATIC_ASSERT(( boost::is_convertible< typename iterator_reference<InputIterator>::type,
-// reference_type >::value ));
-//#endif
base_type temp( first, last );
this->swap( temp );
}
@@ -418,7 +426,27 @@
this->base().
insert( before.base(),
from.begin().base(), from.end().base() ); // strong
- from.base().clear(); // nothrow
+ from.base().clear(); // nothrow
+ }
+
+ public: // C-array support
+
+ void transfer( iterator before, T** from,
+ size_type size, bool delete_from = true ) // strong
+ {
+ BOOST_ASSERT( from != 0 );
+ this->base().insert( before.base(), from, from + size ); // strong
+ if( delete_from )
+ delete[] from;
+ }
+
+ T** c_array() // nothrow
+ {
+ if( this->empty() )
+ return 0;
+ T** res = reinterpret_cast<T**>( &this->begin().base()[0] );
+ BOOST_ASSERT( &*this->begin().base() == (void**)res );
+ return res;
}
public: // null functions
@@ -441,13 +469,14 @@
else if( size > old_size )
{
for( ; old_size != size; ++old_size )
- this->push_back( new T );
+ this->push_back( new BOOST_DEDUCED_TYPENAME
+ boost::remove_pointer<value_type>::type );
}
BOOST_ASSERT( this->size() == size );
}
- void resize( size_type size, T* to_clone )
+ void resize( size_type size, value_type to_clone )
{
size_type old_size = this->size();
if( old_size > size )
Modified: trunk/boost/ptr_container/ptr_set.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_set.hpp (original)
+++ trunk/boost/ptr_container/ptr_set.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -57,7 +57,8 @@
BOOST_PTR_CONTAINER_DEFINE_RELEASE_AND_CLONE( ptr_set,
base_type,
this_type );
-
+ BOOST_PTR_CONTAINER_DEFINE_COPY_CONSTRUCTORS( ptr_set, base_type )
+
};
@@ -95,7 +96,9 @@
BOOST_PTR_CONTAINER_DEFINE_RELEASE_AND_CLONE( ptr_multiset,
base_type,
- this_type );
+ this_type );
+ BOOST_PTR_CONTAINER_DEFINE_COPY_CONSTRUCTORS( ptr_multiset,
+ base_type );
};
Modified: trunk/boost/ptr_container/ptr_set_adapter.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_set_adapter.hpp (original)
+++ trunk/boost/ptr_container/ptr_set_adapter.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -103,30 +103,56 @@
public:
- template< class Compare, class Allocator >
- ptr_set_adapter_base( const Compare& comp,
+ template< class Compare, class Allocator >
+ ptr_set_adapter_base( const Compare& comp,
const Allocator& a )
: base_type( comp, a )
- { }
-
- template< class InputIterator, class Compare, class Allocator >
- ptr_set_adapter_base( InputIterator first, InputIterator last,
+ { }
+
+ template< class InputIterator, class Compare, class Allocator >
+ ptr_set_adapter_base( InputIterator first, InputIterator last,
const Compare& comp,
const Allocator& a )
: base_type( first, last, comp, a )
- { }
-
+ { }
+
+ template< class U, class Set >
+ ptr_set_adapter_base( const ptr_set_adapter_base<U,Set>& r )
+ : base_type( r )
+ { }
+
template< class PtrContainer >
ptr_set_adapter_base( std::auto_ptr<PtrContainer> clone )
: base_type( clone )
{ }
+
+ template< class U, class Set >
+ ptr_set_adapter_base& operator=( const ptr_set_adapter_base<U,Set>& r )
+ {
+ base_type::operator=( r );
+ return *this;
+ }
template< typename PtrContainer >
- void operator=( std::auto_ptr<PtrContainer> clone )
+ ptr_set_adapter_base& operator=( std::auto_ptr<PtrContainer> clone )
{
base_type::operator=( clone );
+ return *this;
+ }
+
+ using base_type::erase;
+
+ size_type erase( const key_type& x ) // nothrow
+ {
+ iterator i( this->base().find( const_cast<key_type*>(&x) ) );
+ // nothrow
+ if( i == this->end() ) // nothrow
+ return 0u; // nothrow
+ this->remove( i ); // nothrow
+ return this->base().erase( const_cast<key_type*>(&x) ); // nothrow
}
-
+
+
iterator find( const key_type& x )
{
return iterator( this->base().
@@ -244,7 +270,7 @@
{
BOOST_ASSERT( this->empty() );
}
-
+
template< class InputIterator, class Compare, class Allocator >
ptr_set_adapter( InputIterator first, InputIterator last,
const Compare& comp = Compare(),
@@ -255,10 +281,23 @@
set_basic_clone_and_insert( first, last );
}
- template< class T >
- ptr_set_adapter( std::auto_ptr<T> r ) : base_type( r )
+ template< class U, class Set >
+ ptr_set_adapter( const ptr_set_adapter<U,Set>& r )
+ : base_type( r )
+ { }
+
+ template< class PtrContainer >
+ ptr_set_adapter( std::auto_ptr<PtrContainer> clone )
+ : base_type( clone )
{ }
+ template< class U, class Set >
+ ptr_set_adapter& operator=( const ptr_set_adapter<U,Set>& r )
+ {
+ base_type::operator=( r );
+ return *this;
+ }
+
template< class T >
void operator=( std::auto_ptr<T> r )
{
@@ -337,7 +376,7 @@
return this->single_transfer( first, last, from );
}
-#ifdef BOOST_NO_SFINAE || BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580)
+#ifdef BOOST_NO_SFINAE
#else
template< class PtrSetAdapter, class Range >
@@ -414,10 +453,23 @@
set_basic_clone_and_insert( first, last );
}
- template< class T >
- ptr_multiset_adapter( std::auto_ptr<T> r ) : base_type( r )
+ template< class U, class Set >
+ ptr_multiset_adapter( const ptr_multiset_adapter<U,Set>& r )
+ : base_type( r )
+ { }
+
+ template< class PtrContainer >
+ ptr_multiset_adapter( std::auto_ptr<PtrContainer> clone )
+ : base_type( clone )
{ }
+ template< class U, class Set >
+ ptr_multiset_adapter& operator=( const ptr_multiset_adapter<U,Set>& r )
+ {
+ base_type::operator=( r );
+ return *this;
+ }
+
template< class T >
void operator=( std::auto_ptr<T> r )
{
@@ -458,7 +510,7 @@
set_basic_clone_and_insert( first, last );
}
-#ifdef BOOST_NO_SFINAE || BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580)
+#ifdef BOOST_NO_SFINAE
#else
template< class Range >
@@ -486,7 +538,7 @@
return this->multi_transfer( first, last, from );
}
-#ifdef BOOST_NO_SFINAE || BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580)
+#ifdef BOOST_NO_SFINAE
#else
template< class PtrSetAdapter, class Range >
Modified: trunk/boost/ptr_container/ptr_vector.hpp
==============================================================================
--- trunk/boost/ptr_container/ptr_vector.hpp (original)
+++ trunk/boost/ptr_container/ptr_vector.hpp 2007-10-25 16:47:59 EDT (Thu, 25 Oct 2007)
@@ -42,9 +42,9 @@
public:
- BOOST_PTR_CONTAINER_DEFINE_NON_INHERITED_MEMBERS( ptr_vector,
- base_class,
- this_type );
+ BOOST_PTR_CONTAINER_DEFINE_SEQEUENCE_MEMBERS( ptr_vector,
+ base_class,
+ this_type );
ptr_vector( size_type n,
const allocator_type& alloc = allocator_type() )
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk