27 #ifndef _STLP_INTERNAL_DBG_SLIST_H 28 #define _STLP_INTERNAL_DBG_SLIST_H 30 #ifndef _STLP_DBG_ITERATOR_H 34 #define _STLP_NON_DBG_SLIST _STLP_PRIV _STLP_NON_DBG_NAME(slist) <_Tp, _Alloc> 38 #if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) 39 template <
class _Tp,
class _Alloc>
44 template <
class _Tp,
class _Alloc>
55 template <
class _Traits>
65 template <
class _Iterator>
67 {
return !(
__it._M_iterator == (
__it._Get_container_ptr())->before_begin()); }
72 template <
class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) >
74 #if !defined (__DMC__) 78 #if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) 110 #if !defined(_STLP_DONT_SUP_DFLT_PARAM) 118 #if defined(_STLP_DONT_SUP_DFLT_PARAM) 122 #if !defined (_STLP_NO_MOVE_SEMANTIC) 126 # if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) 127 src.get()._M_iter_list._Invalidate_all();
134 #if defined (_STLP_MEMBER_TEMPLATES) 137 template <
class _InputIterator>
138 slist(_InputIterator __first, _InputIterator
__last,
143 # if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) 144 template <
class _InputIterator>
145 slist(_InputIterator __first, _InputIterator
__last)
207 #if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 208 void _M_swap_workaround(
_Self& __x) {
swap(__x); }
237 #if !defined (_STLP_DONT_SUP_DFLT_PARAM) 247 #if defined (_STLP_DONT_SUP_DFLT_PARAM) 259 #if defined (_STLP_MEMBER_TEMPLATES) 260 template <
class _InputIterator>
261 void assign(_InputIterator __first, _InputIterator
__last) {
279 #if defined (_STLP_MEMBER_TEMPLATES) 280 template <
class _InIter>
289 template <
class _InIter>
328 #if !defined (_STLP_DONT_SUP_DFLT_PARAM) 338 #if defined (_STLP_DONT_SUP_DFLT_PARAM) 362 iterator __tmp = __before_first; ++__tmp;
381 #if !defined(_STLP_DONT_SUP_DFLT_PARAM) 389 #if defined(_STLP_DONT_SUP_DFLT_PARAM) 442 iterator __first = __before_first; ++__first;
451 __before_first._M_iterator, __before_last._M_iterator);
496 __first._M_iterator,
__last._M_iterator);
504 while (__first !=
__last) {
507 if (
__val == *__first) {
516 if (__first ==
__last)
return;
518 while (++__next !=
__last) {
519 if (*__first == *__next) {
530 #if !defined (_STLP_NO_EXTENSIONS) 549 #if defined (_STLP_MEMBER_TEMPLATES) 550 template <
class _Predicate>
553 while (__first !=
__last) {
564 template <
class _BinaryPredicate>
567 if (__first ==
__last)
return;
569 while (++__next !=
__last) {
570 if (__binary_pred(*__first, *__next)) {
580 template <
class _StrictWeakOrdering>
583 #if !defined (_STLP_NO_EXTENSIONS) 595 __x._Invalidate_iterators(__x.begin(), __x.end());
599 template <
class _StrictWeakOrdering>
600 void sort(_StrictWeakOrdering __comp)
607 #undef _STLP_NON_DBG_SLIST
void insert(iterator __pos, size_type __n, const value_type &__x)
_STLP_NON_DBG_SLIST _Base
_SlistDbgTraits< typename _Traits::_NonConstTraits > _NonConstTraits
iterator insert_after(iterator __pos, const value_type &__x=_Tp())
iterator erase(iterator __pos)
void insert_after(iterator __pos, const value_type *__first, const value_type *__last)
_STLP_INLINE_LOOP _InputIter _Predicate __pred
bool _Dereferenceable(const _Iterator &__it)
slist(const allocator_type &__a=allocator_type())
#define _STLP_NON_DBG_SLIST
void assign(size_type __n, const _Tp &__val)
void splice_after(iterator __pos, _Self &__x, iterator __prev)
_STLP_PRIV _Slist_base< value_type, _Alloc > _Base
_STLP_PRIV _Slist_iterator< value_type, _Const_traits< value_type > > const_iterator
slist(__move_source< _Self > src)
const_reference front() const
#define _STLP_MOVE_TO_PRIV_NAMESPACE
void assign(const value_type *__first, const value_type *__last)
slist(size_type __n, const value_type &__x=_Tp(), const allocator_type &__a=allocator_type())
void _Invalidate_iterator(const iterator &__it)
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
void push_front(const_reference __x)
void resize(size_type new_size, const value_type &__x=_Tp())
#define _STLP_DEFAULT_CONSTRUCTED(_TTp)
slist(const_iterator __first, const_iterator __last, const allocator_type &__a=allocator_type())
iterator previous(const_iterator __pos)
_Base::allocator_type allocator_type
_STLP_INLINE_LOOP _InputIter __last
const_iterator previous(const_iterator __pos) const
_Self & operator=(const _Self &__x)
const_iterator begin() const
#define __IMPORT_CONTAINER_TYPEDEFS(_Super)
_Iterator _Non_Dbg_iter(_Iterator __it)
const value_type & const_reference
void insert_after(iterator __pos, const_iterator __first, const_iterator __last)
#define _STLP_MOVE_TO_STD_NAMESPACE
void get(int argc, const char *argv[])
iterator erase(iterator __first, iterator __last)
_STLP_MOVE_TO_STD_NAMESPACE bool is_sorted(_ForwardIter __first, _ForwardIter __last)
void remove(const value_type &__val)
#define _STLP_ALLOCATOR_TYPE_DFL
_STLP_INLINE_LOOP _InputIter const _Tp & __val
slist< _Tp, _Alloc > _Self
iterator erase_after(iterator __pos)
void insert_after(iterator __pos, size_type __n, const value_type &__x)
void splice_after(iterator __pos, _Self &__x)
_STLP_MOVE_TO_PRIV_NAMESPACE const _InputIterator const input_iterator_tag &_InputIterator __it(__first)
_STLP_INLINE_LOOP _ForwardIter remove_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred)
const_iterator before_begin() const
_SlistDbgTraits< typename _Traits::_ConstTraits > _ConstTraits
void resize(size_type __new_size, const value_type &__x=_Tp())
slist(const value_type *__first, const value_type *__last, const allocator_type &__a=allocator_type())
#define _STLP_DEBUG_CHECK(expr)
_STLP_PRIV __owned_list _M_iter_list
WDF_CHILD_LIST_ITERATOR iterator
iterator insert(iterator __pos, const value_type &__x=_Tp())
void assign(const_iterator __first, const_iterator __last)
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
void assign(size_type __n, const value_type &__val)
allocator_type get_allocator() const
static bool _Check(const _Iterator &__it)
void insert(iterator __pos, const value_type *__first, const value_type *__last)
void splice(iterator __pos, _Self &__x, iterator __first, iterator __last)
void splice(iterator __pos, _Self &__x)
#define _STLP_END_NAMESPACE
void insert(iterator __pos, const_iterator __first, const_iterator __last)
_STLP_PRIV __construct_checker< _STLP_NON_DBG_SLIST > _ConstructCheck
_Base::iterator _Base_iterator
void splice_after(iterator __pos, _Self &__x, iterator __before_first, iterator __before_last)
size_type max_size() const
#define _STLP_BEGIN_NAMESPACE
void splice(iterator __pos, _Self &__x, iterator __i)
iterator erase_after(iterator __before_first, iterator __last)
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
const_iterator end() const