epoc32/include/stdapis/boost/ptr_container/ptr_deque.hpp
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000 (2010-03-16)
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     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 
    22 namespace 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