diff --git a/include/boost/container/stable_vector.hpp b/include/boost/container/stable_vector.hpp
index 691cf58..c952421 100644
a
|
b
|
struct node
|
131 | 131 | }; |
132 | 132 | |
133 | 133 | template<typename Pointer, bool IsConst> |
134 | | class iterator |
| 134 | class iterator_vs |
135 | 135 | { |
136 | 136 | typedef boost::intrusive::pointer_traits<Pointer> non_const_ptr_traits; |
137 | 137 | public: |
… |
… |
class iterator
|
168 | 168 | |
169 | 169 | public: |
170 | 170 | |
171 | | explicit iterator(node_ptr p) BOOST_CONTAINER_NOEXCEPT |
| 171 | explicit iterator_vs(node_ptr p) BOOST_CONTAINER_NOEXCEPT |
172 | 172 | : m_pn(p) |
173 | 173 | {} |
174 | 174 | |
175 | | iterator() BOOST_CONTAINER_NOEXCEPT |
| 175 | iterator_vs() BOOST_CONTAINER_NOEXCEPT |
176 | 176 | {} |
177 | 177 | |
178 | | iterator(iterator<Pointer, false> const& other) BOOST_CONTAINER_NOEXCEPT |
| 178 | iterator_vs(iterator_vs<Pointer, false> const& other) BOOST_CONTAINER_NOEXCEPT |
179 | 179 | : m_pn(other.node_pointer()) |
180 | 180 | {} |
181 | 181 | |
… |
… |
class iterator
|
197 | 197 | } |
198 | 198 | |
199 | 199 | //Increment / Decrement |
200 | | iterator& operator++() BOOST_CONTAINER_NOEXCEPT |
| 200 | iterator_vs& operator++() BOOST_CONTAINER_NOEXCEPT |
201 | 201 | { |
202 | 202 | if(node_base_ptr_ptr p = this->m_pn->up){ |
203 | 203 | ++p; |
… |
… |
class iterator
|
206 | 206 | return *this; |
207 | 207 | } |
208 | 208 | |
209 | | iterator operator++(int) BOOST_CONTAINER_NOEXCEPT |
210 | | { iterator tmp(*this); ++*this; return iterator(tmp); } |
| 209 | iterator_vs operator++(int) BOOST_CONTAINER_NOEXCEPT |
| 210 | { iterator_vs tmp(*this); ++*this; return iterator_vs(tmp); } |
211 | 211 | |
212 | | iterator& operator--() BOOST_CONTAINER_NOEXCEPT |
| 212 | iterator_vs& operator--() BOOST_CONTAINER_NOEXCEPT |
213 | 213 | { |
214 | 214 | if(node_base_ptr_ptr p = this->m_pn->up){ |
215 | 215 | --p; |
… |
… |
class iterator
|
218 | 218 | return *this; |
219 | 219 | } |
220 | 220 | |
221 | | iterator operator--(int) BOOST_CONTAINER_NOEXCEPT |
222 | | { iterator tmp(*this); --*this; return iterator(tmp); } |
| 221 | iterator_vs operator--(int) BOOST_CONTAINER_NOEXCEPT |
| 222 | { iterator_vs tmp(*this); --*this; return iterator_vs(tmp); } |
223 | 223 | |
224 | 224 | reference operator[](difference_type off) const BOOST_CONTAINER_NOEXCEPT |
225 | 225 | { |
226 | | iterator tmp(*this); |
| 226 | iterator_vs tmp(*this); |
227 | 227 | tmp += off; |
228 | 228 | return *tmp; |
229 | 229 | } |
230 | 230 | |
231 | | iterator& operator+=(difference_type off) BOOST_CONTAINER_NOEXCEPT |
| 231 | iterator_vs& operator+=(difference_type off) BOOST_CONTAINER_NOEXCEPT |
232 | 232 | { |
233 | 233 | if(node_base_ptr_ptr p = this->m_pn->up){ |
234 | 234 | p += off; |
… |
… |
class iterator
|
237 | 237 | return *this; |
238 | 238 | } |
239 | 239 | |
240 | | friend iterator operator+(const iterator &left, difference_type off) BOOST_CONTAINER_NOEXCEPT |
| 240 | friend iterator_vs operator+(const iterator_vs &left, difference_type off) BOOST_CONTAINER_NOEXCEPT |
241 | 241 | { |
242 | | iterator tmp(left); |
| 242 | iterator_vs tmp(left); |
243 | 243 | tmp += off; |
244 | 244 | return tmp; |
245 | 245 | } |
246 | 246 | |
247 | | friend iterator operator+(difference_type off, const iterator& right) BOOST_CONTAINER_NOEXCEPT |
| 247 | friend iterator_vs operator+(difference_type off, const iterator_vs& right) BOOST_CONTAINER_NOEXCEPT |
248 | 248 | { |
249 | | iterator tmp(right); |
| 249 | iterator_vs tmp(right); |
250 | 250 | tmp += off; |
251 | 251 | return tmp; |
252 | 252 | } |
253 | 253 | |
254 | | iterator& operator-=(difference_type off) BOOST_CONTAINER_NOEXCEPT |
| 254 | iterator_vs& operator-=(difference_type off) BOOST_CONTAINER_NOEXCEPT |
255 | 255 | { *this += -off; return *this; } |
256 | 256 | |
257 | | friend iterator operator-(const iterator &left, difference_type off) BOOST_CONTAINER_NOEXCEPT |
| 257 | friend iterator_vs operator-(const iterator_vs &left, difference_type off) BOOST_CONTAINER_NOEXCEPT |
258 | 258 | { |
259 | | iterator tmp(left); |
| 259 | iterator_vs tmp(left); |
260 | 260 | tmp -= off; |
261 | 261 | return tmp; |
262 | 262 | } |
263 | 263 | |
264 | | friend difference_type operator-(const iterator& left, const iterator& right) BOOST_CONTAINER_NOEXCEPT |
| 264 | friend difference_type operator-(const iterator_vs& left, const iterator_vs& right) BOOST_CONTAINER_NOEXCEPT |
265 | 265 | { return left.m_pn->up - right.m_pn->up; } |
266 | 266 | |
267 | 267 | //Comparison operators |
268 | | friend bool operator== (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT |
| 268 | friend bool operator== (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT |
269 | 269 | { return l.m_pn == r.m_pn; } |
270 | 270 | |
271 | | friend bool operator!= (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT |
| 271 | friend bool operator!= (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT |
272 | 272 | { return l.m_pn != r.m_pn; } |
273 | 273 | |
274 | | friend bool operator< (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT |
| 274 | friend bool operator< (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT |
275 | 275 | { return l.m_pn->up < r.m_pn->up; } |
276 | 276 | |
277 | | friend bool operator<= (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT |
| 277 | friend bool operator<= (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT |
278 | 278 | { return l.m_pn->up <= r.m_pn->up; } |
279 | 279 | |
280 | | friend bool operator> (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT |
| 280 | friend bool operator> (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT |
281 | 281 | { return l.m_pn->up > r.m_pn->up; } |
282 | 282 | |
283 | | friend bool operator>= (const iterator& l, const iterator& r) BOOST_CONTAINER_NOEXCEPT |
| 283 | friend bool operator>= (const iterator_vs& l, const iterator_vs& r) BOOST_CONTAINER_NOEXCEPT |
284 | 284 | { return l.m_pn->up >= r.m_pn->up; } |
285 | 285 | }; |
286 | 286 | |
… |
… |
class stable_vector
|
501 | 501 | { allocator_version_traits_t::deallocate_individual(this->priv_node_alloc(), holder); } |
502 | 502 | |
503 | 503 | friend class stable_vector_detail::clear_on_destroy<stable_vector>; |
504 | | typedef stable_vector_detail::iterator |
| 504 | typedef stable_vector_detail::iterator_vs |
505 | 505 | < typename allocator_traits<Allocator>::pointer |
506 | 506 | , false> iterator_impl; |
507 | | typedef stable_vector_detail::iterator |
| 507 | typedef stable_vector_detail::iterator_vs |
508 | 508 | < typename allocator_traits<Allocator>::pointer |
509 | 509 | , false> const_iterator_impl; |
510 | 510 | #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED |