diff -r 000000000000 -r e4d67989cc36 ossrv_pub/boost_apis/boost/ptr_container/ptr_vector.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ossrv_pub/boost_apis/boost/ptr_container/ptr_vector.hpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,92 @@ +// +// Boost.Pointer Container +// +// Copyright Thorsten Ottosen 2003-2005. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// For more information, see http://www.boost.org/libs/ptr_container/ +// + +#ifndef BOOST_PTR_CONTAINER_PTR_VECTOR_HPP +#define BOOST_PTR_CONTAINER_PTR_VECTOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif + +#include +#include + +namespace boost +{ + + template + < + class T, + class CloneAllocator = heap_clone_allocator, + class Allocator = std::allocator + > + class ptr_vector : public + ptr_sequence_adapter< T, + std::vector, + CloneAllocator > + { + typedef ptr_sequence_adapter< T, + std::vector, + CloneAllocator > + base_class; + + typedef ptr_vector this_type; + + public: + + BOOST_PTR_CONTAINER_DEFINE_NON_INHERITED_MEMBERS( ptr_vector, + base_class, + this_type ); + + ptr_vector( size_type n, + const allocator_type& alloc = allocator_type() ) + : base_class(alloc) + { + this->c_private().reserve( n ); + } + + public: // serialization + + template< class Archive > + void load( Archive& ar, unsigned ) + { + size_type n; + ar & n; + + this->reserve( n ); + this->load_helper( ar, n ); + } + + BOOST_SERIALIZATION_SPLIT_MEMBER() + + }; + + ////////////////////////////////////////////////////////////////////////////// + // clonability + + template< typename T, typename CA, typename A > + inline ptr_vector* new_clone( const ptr_vector& r ) + { + return r.clone().release(); + } + + ///////////////////////////////////////////////////////////////////////// + // swap + + template< typename T, typename CA, typename A > + inline void swap( ptr_vector& l, ptr_vector& r ) + { + l.swap(r); + } + +} + +#endif