1//
2// Boost.Pointer Container
3//
4// Copyright Thorsten Ottosen 2003-2005. Use, modification and
5// distribution is subject to the Boost Software License, Version
6// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
9// For more information, see http://www.boost.org/libs/ptr_container/
10//
11
12#ifndef BOOST_PTR_CONTAINER_PTR_DEQUE_HPP
13#define BOOST_PTR_CONTAINER_PTR_DEQUE_HPP
14
15#if defined(_MSC_VER) && (_MSC_VER >= 1200)
16# pragma once
17#endif
18
19#include <deque>
20#include <boost/ptr_container/ptr_sequence_adapter.hpp>
21
22namespace boost
23{
24
25 template
26 <
27 class T,
28 class CloneAllocator = heap_clone_allocator,
29 class Allocator = std::allocator<void*>
30 >
31 class ptr_deque : public
32 ptr_sequence_adapter< T,
33 std::deque<void*,Allocator>,
34 CloneAllocator >
35 {
36 typedef ptr_sequence_adapter< T,
37 std::deque<void*,Allocator>,
38 CloneAllocator >
39 base_class;
40
41 typedef ptr_deque<T,CloneAllocator,Allocator> this_type;
42
43 public:
44
45 BOOST_PTR_CONTAINER_DEFINE_SEQEUENCE_MEMBERS( ptr_deque,
46 base_class,
47 this_type )
48 };
49
50 //////////////////////////////////////////////////////////////////////////////
51 // clonability
52
53 template< typename T, typename CA, typename A >
54 inline ptr_deque<T,CA,A>* new_clone( const ptr_deque<T,CA,A>& r )
55 {
56 return r.clone().release();
57 }
58
59 /////////////////////////////////////////////////////////////////////////
60 // swap
61
62 template< typename T, typename CA, typename A >
63 inline void swap( ptr_deque<T,CA,A>& l, ptr_deque<T,CA,A>& r )
64 {
65 l.swap(r);
66 }
67}
68
69#endif
70

source code of boost/boost/ptr_container/ptr_deque.hpp