source: NonGTP/Boost/boost/ptr_container/ptr_deque.hpp @ 857

Revision 857, 2.1 KB checked in by igarcia, 19 years ago (diff)
Line 
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_NON_INHERITED_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//#undef BOOST_FORWARD_TYPEDEF
70//#undef BOOST_PTR_CONTAINER_RELEASE_AND_CLONE
71
72#endif
Note: See TracBrowser for help on using the repository browser.