30 #ifndef _STLP_INTERNAL_DBG_LIST_H 31 #define _STLP_INTERNAL_DBG_LIST_H 33 #ifndef _STLP_INTERNAL_ALGO_H 37 #ifndef _STLP_DBG_ITERATOR_H 41 #define _STLP_NON_DBG_LIST _STLP_PRIV _STLP_NON_DBG_NAME(list) <_Tp, _Alloc> 45 #if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) 46 template <
class _Tp,
class _Alloc>
50 template <
class _Tp,
class _Alloc>
56 template <
class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) >
58 #if !defined (__DMC__) 62 #if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) 94 #if !defined(_STLP_DONT_SUP_DFLT_PARAM) 102 #if defined(_STLP_DONT_SUP_DFLT_PARAM) 107 #if !defined (_STLP_NO_MOVE_SEMANTIC) 111 # if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) 112 src.get()._M_iter_list._Invalidate_all();
119 #if defined (_STLP_MEMBER_TEMPLATES) 120 template <
class _InputIterator>
121 list(_InputIterator __first, _InputIterator
__last,
126 # if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) 127 template <
class _InputIterator>
128 list(_InputIterator __first, _InputIterator
__last)
172 const_reverse_iterator
rbegin()
const {
return const_reverse_iterator(
end()); }
173 const_reverse_iterator
rend()
const {
return const_reverse_iterator(
begin()); }
201 #if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 202 void _M_swap_workaround(
_Self& __x) {
swap(__x); }
205 #if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) 210 _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) 214 #if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) 218 #if defined (_STLP_MEMBER_TEMPLATES) 219 template <
class _InputIterator>
228 #if !defined (_STLP_MEMBER_TEMPLATES) 236 #if !defined (_STLP_MEMBER_TEMPLATES) || !defined (_STLP_NO_METHOD_SPECIALIZATION) 241 # if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) 242 _STLP_STD_DEBUG_CHECK(__check_if_not_owner(&
_M_iter_list, __first))
250 # if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) 251 _STLP_STD_DEBUG_CHECK(__check_if_not_owner(&
_M_iter_list, __first))
288 #if !defined(_STLP_DONT_SUP_DFLT_PARAM) 295 for ( ; __i !=
_M_non_dbg_impl.end() && __len < __new_size; ++__i, ++__len);
297 if (__len == __new_size)
303 #if defined(_STLP_DONT_SUP_DFLT_PARAM) 307 #if defined (_STLP_MEMBER_TEMPLATES) 308 template <
class _InputIterator>
309 void assign(_InputIterator __first, _InputIterator
__last) {
341 while (__first !=
__last) {
344 if (__x == *__first) {
361 #if (_STLP_DEBUG_LEVEL != _STLP_STANDARD_DBG_LEVEL) 376 #if (_STLP_DEBUG_LEVEL != _STLP_STANDARD_DBG_LEVEL) 389 #if (_STLP_DEBUG_LEVEL != _STLP_STANDARD_DBG_LEVEL) 400 #if !defined (_STLP_NO_EXTENSIONS) 417 if (__first ==
__last)
return;
419 while (++__next !=
__last) {
420 if (*__first == *__next) {
433 #if defined (_STLP_MEMBER_TEMPLATES) 434 template <
class _Predicate>
437 while (__first !=
__last) {
448 template <
class _BinaryPredicate>
449 void unique(_BinaryPredicate __binary_pred) {
451 if (__first ==
__last)
return;
453 while (++__next !=
__last) {
454 if (__binary_pred(*__first, *__next)) {
464 template <
class _StrictWeakOrdering>
465 void merge(
_Self& __x, _StrictWeakOrdering __comp) {
466 #if !defined (_STLP_NO_EXTENSIONS) 475 __x._Invalidate_iterators(__x.begin(), __x.end());
479 template <
class _StrictWeakOrdering>
480 void sort(_StrictWeakOrdering __comp) {
489 #undef _STLP_NON_DBG_LIST
#define bidirectional_iterator_tag
void push_back(const_reference __x)
void splice(iterator __pos, _Self &__x)
void splice(iterator __pos, _Self &__x, iterator __first, iterator __last)
void _Invalidate_iterator(const iterator &__it)
void assign(iterator __first, iterator __last)
void splice(iterator __pos, _Self &__x, iterator __i)
iterator erase(iterator __pos)
list(const_iterator __first, const_iterator __last, const allocator_type &__a=allocator_type())
void insert(iterator __pos, size_type __n, const _Tp &__x)
void resize(size_type __new_size, const_reference __x=value_type())
_Base::allocator_type allocator_type
list(const value_type *__first, const value_type *__last, const allocator_type &__a=allocator_type())
_STLP_INLINE_LOOP _InputIter _Predicate __pred
bool _Dereferenceable(const _Iterator &__it)
void assign(size_type __n, const _Tp &__val)
#define _STLP_NON_DBG_LIST
allocator_type get_allocator() const
_STLP_PRIV _DBG_iter< _Base, _STLP_PRIV _DbgTraits< _Const_traits< value_type > > > const_iterator
const_reverse_iterator rbegin() const
const_reference back() const
const_iterator begin() const
iterator insert(iterator __pos, const_reference __x=value_type())
list(const allocator_type &__a=allocator_type())
const_reverse_iterator rend() const
#define _STLP_DEFAULT_CONSTRUCTED(_TTp)
_Self & operator=(const _Self &__x)
_STLP_PRIV __construct_checker< _STLP_NON_DBG_LIST > _ConstructCheck
_STLP_INLINE_LOOP _InputIter __last
#define __IMPORT_CONTAINER_TYPEDEFS(_Super)
_Iterator _Non_Dbg_iter(_Iterator __it)
_STLP_PRIV _List_iterator< BookmarkNode, _Const_traits< BookmarkNode > > const_iterator
_STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS
void _Invalidate_iterators(const iterator &__first, const iterator &__last)
void get(int argc, const char *argv[])
_STLP_MOVE_TO_STD_NAMESPACE bool is_sorted(_ForwardIter __first, _ForwardIter __last)
void assign(const_iterator __first, const_iterator __last)
#define _STLP_ALLOCATOR_TYPE_DFL
_STLP_INLINE_LOOP _InputIter const _Tp & __val
_STLP_PRIV _List_base< BookmarkNode, _Alloc > _Base
void insert(iterator __pos, iterator __first, iterator __last)
void assign(const _Tp *__first, const _Tp *__last)
const_reference front() const
_Base::iterator _Base_iterator
list< _Tp, _Alloc > _Self
void remove(const _Tp &__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)
list(size_type __n, const_reference __val=_STLP_DEFAULT_CONSTRUCTED(value_type), const allocator_type &__a=allocator_type())
_STLP_PRIV _List_iterator< _Tp, _Nonconst_traits< _Tp > > iterator
void insert(iterator __pos, const_iterator __first, const_iterator __last)
iterator insert(iterator __pos, const _Tp &__x=_Tp())
#define _STLP_DEBUG_CHECK(expr)
WDF_CHILD_LIST_ITERATOR iterator
void insert(iterator __pos, const _Tp *__first, const _Tp *__last)
_STLP_PRIV __owned_list _M_iter_list
void resize(size_type __new_size, const _Tp &__x=_Tp())
const_iterator end() const
_STLP_PRIV _DBG_iter< _Base, _STLP_PRIV _DbgTraits< _Nonconst_traits< value_type > > > iterator
#define _STLP_END_NAMESPACE
size_type max_size() const
void push_front(const_reference __x)
iterator erase(iterator __first, iterator __last)
reverse_iterator rbegin()
list(__move_source< _Self > src)
#define _STLP_BEGIN_NAMESPACE
list(size_type __n, const _Tp &__x=_Tp(), const allocator_type &__a=allocator_type())
void assign(size_type __n, const_reference __val)
#define _STLP_VERBOSE_ASSERT(expr, diagnostic)