]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/ptr_container/doc/ptr_multiset_adapter.rst
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / ptr_container / doc / ptr_multiset_adapter.rst
CommitLineData
7c673cae
FG
1++++++++++++++++++++++++++++++++++
2 |Boost| Pointer Container Library
3++++++++++++++++++++++++++++++++++
4
5.. |Boost| image:: boost.png
6
7Class ``ptr_multiset_adapter``
8------------------------------
9
10This class is used to build custom pointer containers with
11an underlying multiset-like container. The interface of the class is an extension
12of the interface from ``associative_ptr_container``.
13
14**Hierarchy:**
15
16- `reversible_ptr_container <reversible_ptr_container.html>`_
17
18 - `associative_ptr_container <associative_ptr_container.html>`_
19
20 - `ptr_set_adapter <ptr_set_adapter.html>`_
21 - ``ptr_multiset_adapter``
22 - `ptr_map_adapter <ptr_map_adapter.html>`_
23 - `ptr_multi_map_adapter <ptr_multimap_adapter.html>`_
24
25 - `ptr_set <ptr_set.html>`_
26 - `ptr_multi_set <ptr_multiset.html>`_
27 - `ptr_map <ptr_map.html>`_
28 - `ptr_multimap <ptr_multimap.html>`_
29
30**Navigate:**
31
32- `home <ptr_container.html>`_
33- `reference <reference.html>`_
34
35**Synopsis:**
36
37.. parsed-literal::
38
39
40 namespace boost
41 {
42 template
43 <
44 class Key,
45 class VoidPtrMultiSet,
46 class CloneAllocator = heap_clone_allocator
47 >
48 class ptr_multiset_adapter
49 {
50
51 public: // `modifiers`_
52 iterator insert( Key* x );
53 template< class Key2 >
54 iterator insert( std::auto_ptr<Key2> x );
55
56 public: // `pointer container requirements`_
57 void transfer( iterator object, ptr_multiset_adapter& from );
58 size_type transfer( iterator first, iterator last, ptr_multiset_adapter& from );
59 template< class Range >
60 size_type transfer( const Range& r, ptr_multiset_adapter& from );
61 void transfer( ptr_multiset_adapter& from );
62
63 }; // class 'ptr_multiset_adapter'
64
65 } // namespace 'boost'
66
67
68Semantics
69---------
70
71.. _`modifiers`:
72
73Semantics: modifiers
74^^^^^^^^^^^^^^^^^^^^
75
76- ``iterator insert( key_type* x );``
77
78 - Requirements: ``x != 0``
79
80 - Effects: Takes ownership of ``x``. The returned iterator points to the element with key ``x``.
81
82 - Throws: bad_pointer if ``x == 0``
83
84 - Exception safety: Strong guarantee
85
86
87- ``template< class Key2 > iterator insert( std::auto_ptr<Key2> x );``
88
89 - Effects: ``return insert( x.release() );``
90
91..
92 - ``iterator insert( const key_type& x );``
93
94 - Effects: ``return insert( allocate_clone( x ) );``
95
96 - Exception safety: Strong guarantee
97
98.. _`pointer container requirements`:
99
100Semantics: pointer container requirements
101^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
102
103- ``void transfer( iterator object, ptr_multiset_adapter& from );``
104
105 - Requirements: ``not from.empty()``
106
107 - Effects: Inserts the object defined by ``object`` into the container and remove it from ``from``.
108
109 - Postconditions: ``size()`` is one more, ``from.size()`` is one less.
110
111 - Exception safety: Strong guarantee
112
113- ``void transfer( iterator first, iterator last, ptr_multiset_adapter& from );``
114
115 - Requirements: ``not from.empty()``
116
117 - Effects: Inserts the objects defined by the range ``[first,last)`` into the container and remove it from ``from``.
118
119 - Postconditions: Let ``N == std::distance(first,last);`` then ``size()`` is ``N`` more, ``from.size()`` is ``N`` less.
120
121 - Exception safety: Basic guarantee
122
123- ``template< class Range > void transfer( const Range& r, ptr_multiset_adapter& from );``
124
125 - Effects: ``transfer( boost::begin(r), boost::end(r), from );``
126
127- ``void transfer( ptr_multiset_adapter& from );``
128
129 - Effects: ``transfer( from.begin(), from.end(), from );``.
130
131 - Postconditions: ``from.empty();``
132
133 - Exception safety: Basic guarantee
134
135.. raw:: html
136
137 <hr>
138
139:Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__).
140
141__ http://www.boost.org/LICENSE_1_0.txt
142
143