1++++++++++++++++++++++++++++++++++ 2 |Boost| Pointer Container Library 3++++++++++++++++++++++++++++++++++ 4 5.. |Boost| image:: boost.png 6 7Class ``ptr_list`` 8------------------ 9 10A ``ptr_list<T>`` is a pointer container that uses an underlying ``std:list<void*>`` 11to store the pointers. 12 13**Hierarchy:** 14 15- `reversible_ptr_container <reversible_ptr_container.html>`_ 16 17 - `ptr_sequence_adapter <ptr_sequence_adapter.html>`_ 18 19 - `ptr_vector <ptr_vector.html>`_ 20 - ``ptr_list`` 21 - `ptr_deque <ptr_deque.html>`_ 22 - `ptr_array <ptr_array.html>`_ 23 24**Navigate:** 25 26- `home <ptr_container.html>`_ 27- `reference <reference.html>`_ 28 29 30**Synopsis:** 31 32.. parsed-literal:: 33 34 namespace boost 35 { 36 37 template 38 < 39 class T, 40 class CloneAllocator = heap_clone_allocator, 41 class Allocator = std::allocator<void*> 42 > 43 class ptr_list : public ptr_sequence_adapter 44 < 45 T, 46 std::list<void*,Allocator>, 47 CloneAllocator 48 > 49 { 50 51 public: // modifiers_ 52 void push_front( T* x ); 53 template< class U > 54 void push_front( compatible-smart-ptr<U> x ); 55 auto_type pop_front(); 56 57 public: // `list operations`_ 58 void reverse(); 59 60 }; // class 'ptr_list' 61 62 } // namespace 'boost' 63 64 65Semantics 66--------- 67 68.. _modifiers: 69 70Semantics: modifiers 71^^^^^^^^^^^^^^^^^^^^ 72 73- ``void push_front( T* x );`` 74 75 - Requirements: ``x != 0`` 76 77 - Effects: Inserts the pointer into container and takes ownership of it 78 79 - Throws: ``bad_pointer`` if ``x == 0`` 80 81 - Exception safety: Strong guarantee 82 83- ``template< class U > void push_front( compatible-smart-ptr<U> x );`` 84 85 - Effects: ``push_front( x.release() );`` 86 87.. 88 - ``void push_front( const T& x );`` 89 90 - Effects: push_front( allocate_clone( x ) ); 91 92 - Exception safety: Strong guarantee 93 94- ``auto_type pop_front():`` 95 96 - Requirements:``not empty()`` 97 98 - Effects: Removes the first element in the container 99 100 - Postconditions: ``size()`` is one less 101 102 - Throws: ``bad_ptr_container_operation`` if ``empty() == true`` 103 104 - Exception safety: Strong guarantee 105 106.. _`list operations`: 107 108Semantics: list operations 109^^^^^^^^^^^^^^^^^^^^^^^^^^ 110 111.. 112 - ``void splice( iterator before, ptr_list& x );`` 113 114 - Requirements:``&x != this`` 115 116 - Effects: inserts the all of ``x``'s elements before ``before`` 117 118 - Postconditions: ``x.empty()`` 119 120 - Throws: nothing 121 122 - Remark: prefer this to ``transfer( before, x );`` 123 124 - ``void splice( iterator before, ptr_list& x, iterator i );`` 125 126 - Not ready yet 127 128 - ``void splice( iterator before, ptr_list& x, iterator first, iterator last );`` 129 130 - Not ready yet 131 132 - ``void merge( ptr_list& x );`` 133 134 - Not ready yet 135 136 - ``template< typename Compare > 137 void merge( ptr_list& x, Compare comp );`` 138 139 - Not ready yet 140 141- ``void reverse();`` 142 143 - Effects: reverses the underlying sequence 144 145 - Throws: nothing 146 147.. raw:: html 148 149 <hr> 150 151:Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). 152 153__ http://www.boost.org/LICENSE_1_0.txt 154 155 156