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)
39template <
class _Tp,
class _Alloc>
44template <
class _Tp,
class _Alloc>
55template <
class _Traits>
65 template <
class _Iterator>
67 {
return !(
__it._M_iterator == (
__it._Get_container_ptr())->before_begin()); }
72template <
class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) >
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
_STLP_INLINE_LOOP _InputIter __last
_STLP_INLINE_LOOP _InputIter _Predicate __pred
_STLP_MOVE_TO_STD_NAMESPACE bool is_sorted(_ForwardIter __first, _ForwardIter __last)
_STLP_INLINE_LOOP _ForwardIter remove_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred)
_STLP_INLINE_LOOP _InputIter const _Tp & __val
#define _STLP_DEFAULT_CONSTRUCTED(_TTp)
#define _STLP_DEBUG_CHECK(expr)
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)
_STLP_MOVE_TO_PRIV_NAMESPACE const _InputIterator const input_iterator_tag &_InputIterator __it(__first)
void get(int argc, const char *argv[])
void push_front(const_reference __x)
_Self & operator=(const _Self &__x)
const_iterator end() const
void insert(iterator __pos, const_iterator __first, const_iterator __last)
_STLP_PRIV _Slist_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
iterator erase_after(iterator __before_first, iterator __last)
void resize(size_type new_size, const value_type &__x=_Tp())
_Base::iterator _Base_iterator
void resize(size_type __new_size, const value_type &__x=_Tp())
slist(const_iterator __first, const_iterator __last, const allocator_type &__a=allocator_type())
_STLP_NON_DBG_SLIST _Base
void insert(iterator __pos, const value_type *__first, const value_type *__last)
iterator erase(iterator __pos)
void splice_after(iterator __pos, _Self &__x, iterator __before_first, iterator __before_last)
void splice(iterator __pos, _Self &__x, iterator __first, iterator __last)
iterator erase(iterator __first, iterator __last)
_Base::allocator_type allocator_type
const value_type & const_reference
void assign(const value_type *__first, const value_type *__last)
size_type max_size() const
const_reference front() const
void insert_after(iterator __pos, const value_type *__first, const value_type *__last)
iterator insert_after(iterator __pos, const value_type &__x=_Tp())
slist(const value_type *__first, const value_type *__last, const allocator_type &__a=allocator_type())
void assign(size_type __n, const value_type &__val)
slist(__move_source< _Self > src)
iterator insert(iterator __pos, const value_type &__x=_Tp())
_STLP_PRIV __construct_checker< _STLP_NON_DBG_SLIST > _ConstructCheck
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
iterator erase_after(iterator __pos)
const_iterator before_begin() const
allocator_type get_allocator() const
void assign(const_iterator __first, const_iterator __last)
void assign(size_type __n, const _Tp &__val)
const_iterator begin() const
_STLP_PRIV __owned_list _M_iter_list
void insert_after(iterator __pos, size_type __n, const value_type &__x)
void remove(const value_type &__val)
void splice_after(iterator __pos, _Self &__x)
void insert_after(iterator __pos, const_iterator __first, const_iterator __last)
void _Invalidate_iterator(const iterator &__it)
void insert(iterator __pos, size_type __n, const value_type &__x)
_STLP_PRIV _Slist_iterator< _Tp, _Const_traits< _Tp > > const_iterator
void splice(iterator __pos, _Self &__x)
slist(const allocator_type &__a=allocator_type())
slist(size_type __n, const value_type &__x=_Tp(), const allocator_type &__a=allocator_type())
slist< _Tp, _Alloc > _Self
_STLP_PRIV _Slist_base< _Tp, _Alloc > _Base
void splice(iterator __pos, _Self &__x, iterator __i)
void splice_after(iterator __pos, _Self &__x, iterator __prev)
iterator previous(const_iterator __pos)
const_iterator previous(const_iterator __pos) const
_Iterator _Non_Dbg_iter(_Iterator __it)
bool _Dereferenceable(const _Iterator &__it)
#define _STLP_NON_DBG_SLIST
#define _STLP_MOVE_TO_STD_NAMESPACE
#define __IMPORT_CONTAINER_TYPEDEFS(_Super)
#define _STLP_ALLOCATOR_TYPE_DFL
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
#define _STLP_MOVE_TO_PRIV_NAMESPACE
static bool _Check(const _Iterator &__it)
_SlistDbgTraits< typename _Traits::_NonConstTraits > _NonConstTraits
_SlistDbgTraits< typename _Traits::_ConstTraits > _ConstTraits