111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1994 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Hewlett-Packard Company 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1996,1997 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Silicon Graphics Computer Systems, Inc. 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1997 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Moscow Center for SPARC Technology 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Copyright (c) 1999 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Boris Fomitchev 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * This material is provided "as is", with absolutely no warranty expressed 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * or implied. Any use is at your own risk. 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to use or copy this software for any purpose is hereby granted 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * without fee, provided the above notices are retained on all copies. 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * Permission to modify the code and to distribute modified code is granted, 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * provided the above notices are retained, and a notice that the code was 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * modified is included with the above copyright notice. 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* NOTE: This is an internal header file, included by other STL headers. 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * You should not attempt to use it directly. 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STLP_INTERNAL_DBG_VECTOR_H 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_INTERNAL_DBG_VECTOR_H 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STLP_DBG_ITERATOR_H 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# include <stl/debug/_iterator.h> 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NON_DBG_VECTOR _STLP_PRIV _STLP_NON_DBG_NAME(vector) <_Tp, _Alloc> 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_BEGIN_NAMESPACE 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _Tp, class _Alloc> 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertinline _Tp* 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertvalue_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_VECTOR >&) 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ return (_Tp*)0; } 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _Tp, class _Alloc> 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertinline random_access_iterator_tag 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertiterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_VECTOR >&) 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ return random_access_iterator_tag(); } 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_PRIV_NAMESPACE 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _Tp, class _NcIt> 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _Vector_const_traits; 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _Tp, class _NcIt> 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _Vector_nonconst_traits { 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Nonconst_traits<_Tp> _BaseT; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Tp value_type; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Tp& reference; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Tp* pointer; 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_const_traits<_Tp, _NcIt> _ConstTraits; 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_nonconst_traits<_Tp, _NcIt> _NonConstTraits; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _Tp, class _NcIt> 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _Vector_const_traits { 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Const_traits<_Tp> _BaseT; 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Tp value_type; 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef const _Tp& reference; 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef const _Tp* pointer; 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_const_traits<_Tp, _NcIt> _ConstTraits; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_nonconst_traits<_Tp, _NcIt> _NonConstTraits; 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _Vector_nonconst_traits<bool, _Bit_iterator> { 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Bit_iterator::value_type value_type; 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Bit_iterator::reference reference; 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Bit_iterator::pointer pointer; 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_const_traits<bool, _Bit_iterator> _ConstTraits; 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_nonconst_traits<bool, _Bit_iterator> _NonConstTraits; 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _Vector_const_traits<bool, _Bit_iterator> { 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Bit_const_iterator::value_type value_type; 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Bit_const_iterator::reference reference; 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Bit_const_iterator::pointer pointer; 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_const_traits<bool, _Bit_iterator> _ConstTraits; 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _Vector_nonconst_traits<bool, _Bit_iterator> _NonConstTraits; 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_MOVE_TO_STD_NAMESPACE 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) > 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass vector : 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (__DMC__) 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert private 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_PRIV __construct_checker< _STLP_NON_DBG_VECTOR > 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert , public __stlport_class<vector<_Tp, _Alloc> > 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertprivate: 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _STLP_NON_DBG_VECTOR _Base; 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef vector<_Tp, _Alloc> _Self; 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_VECTOR > _ConstructCheck; 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Base _M_non_dbg_impl; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_PRIV __owned_list _M_iter_list; 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpublic: 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __IMPORT_CONTAINER_TYPEDEFS(_Base) 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _STLP_PRIV _DBG_iter<_Base, 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_PRIV _DbgTraits<_STLP_PRIV _Vector_nonconst_traits<value_type, typename _Base::iterator> > > iterator; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert typedef _STLP_PRIV _DBG_iter<_Base, 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_PRIV _DbgTraits<_STLP_PRIV _Vector_const_traits<value_type, typename _Base::iterator> > > const_iterator; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertprivate: 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _Invalidate_all() 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { _M_iter_list._Invalidate_all(); } 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _Invalidate_iterator(const iterator& __it) 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); } 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _Invalidate_iterators(const iterator& __first, const iterator& __last) 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { _STLP_PRIV __invalidate_range(&_M_iter_list, __first, __last); } 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _Check_Overflow(size_type __nb) { 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (size() + __nb > capacity()) 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _Compare_Capacity (size_type __old_capacity) { 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (capacity() > __old_capacity) { 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpublic: 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator begin() { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_iterator begin() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator end() { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_iterator end() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reverse_iterator rbegin() { return reverse_iterator(end()); } 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reverse_iterator rend() { return reverse_iterator(begin()); } 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_type size() const { return _M_non_dbg_impl.size(); } 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_type max_size() const { return _M_non_dbg_impl.max_size(); } 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_type capacity() const { return _M_non_dbg_impl.capacity(); } 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert bool empty() const { return _M_non_dbg_impl.empty(); } 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reference operator[](size_type __n) { 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_VERBOSE_ASSERT(__n < size(), _StlMsg_OUT_OF_BOUNDS) 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return _M_non_dbg_impl[__n]; 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_reference operator[](size_type __n) const { 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_VERBOSE_ASSERT(__n < size(), _StlMsg_OUT_OF_BOUNDS) 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return _M_non_dbg_impl[__n]; 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reference at(size_type __n) { return _M_non_dbg_impl.at(__n); } 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_reference at(size_type __n) const { return _M_non_dbg_impl.at(__n); } 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert explicit vector(const allocator_type& __a = allocator_type()) 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _M_non_dbg_impl(__a), _M_iter_list(&_M_non_dbg_impl) {} 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined(_STLP_DONT_SUP_DFLT_PARAM) 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert explicit vector(size_type __n, const _Tp& __x = _Tp(), 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vector(size_type __n, const _Tp& __x, 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const allocator_type& __a = allocator_type()) 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _M_non_dbg_impl(__n, __x, __a), _M_iter_list(&_M_non_dbg_impl) {} 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(_STLP_DONT_SUP_DFLT_PARAM) 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert explicit vector(size_type __n) 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _M_non_dbg_impl(__n), _M_iter_list(&_M_non_dbg_impl) {} 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vector(const _Self& __x) 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _ConstructCheck(__x), _M_non_dbg_impl(__x._M_non_dbg_impl), _M_iter_list(&_M_non_dbg_impl) {} 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_NO_MOVE_SEMANTIC) 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vector(__move_source<_Self> src) 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)), 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_iter_list(&_M_non_dbg_impl) { 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert src.get()._M_iter_list._Invalidate_all(); 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# else 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert src.get()._M_iter_list._Set_owner(_M_iter_list); 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_MEMBER_TEMPLATES) 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template <class _InputIterator> 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vector(_InputIterator __first, _InputIterator __last, 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _ConstructCheck(__first, __last), 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last), __a), 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_iter_list(&_M_non_dbg_impl) {} 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template <class _InputIterator> 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vector(_InputIterator __first, _InputIterator __last) 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _ConstructCheck(__first, __last), 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)), 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_iter_list(&_M_non_dbg_impl) {} 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# endif 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vector(const _Tp* __first, const _Tp* __last, 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const allocator_type& __a = allocator_type()) 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _ConstructCheck(__first, __last), _M_non_dbg_impl(__first, __last, __a), 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_iter_list(&_M_non_dbg_impl) {} 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert // mysterious VC++ bug ? 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert vector(const_iterator __first, const_iterator __last , 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const allocator_type& __a = allocator_type()) 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert : _ConstructCheck(__first, __last), 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl(__first._M_iterator, __last._M_iterator, __a), 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_iter_list(&_M_non_dbg_impl) {} 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _STLP_MEMBER_TEMPLATES */ 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Self& operator=(const _Self& __x) { 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (this != &__x) { 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl = __x._M_non_dbg_impl; 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return *this; 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void reserve(size_type __n) { 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (capacity() < __n) 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.reserve(__n); 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reference front() { 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return *begin(); 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_reference front() const { 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return *begin(); 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reference back() { 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return *(--end()); 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_reference back() const { 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return *(--end()); 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void swap(_Self& __x) { 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_iter_list._Swap_owners(__x._M_iter_list); 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.swap(__x._M_non_dbg_impl); 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _M_swap_workaround(_Self& __x) { swap(__x); } 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined(_STLP_DONT_SUP_DFLT_PARAM) 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator insert(iterator __pos, const _Tp& __x = _Tp()) { 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator insert(iterator __pos, const _Tp& __x) { 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Check_Overflow(1); 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return iterator(&_M_iter_list, _M_non_dbg_impl.insert(__pos._M_iterator, __x)); 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined(_STLP_DONT_SUP_DFLT_PARAM) 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator insert(iterator __pos) 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_MEMBER_TEMPLATES) 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert // Check whether it's an integral type. If so, it's not an iterator. 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template <class _InputIterator> 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void insert(iterator __pos, 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _InputIterator __first, _InputIterator __last) { 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_type __old_capacity = capacity(); 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.insert(__pos._M_iterator, 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Compare_Capacity(__old_capacity); 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_MEMBER_TEMPLATES) 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void insert (iterator __pos, 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const value_type *__first, const value_type *__last) { 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first,__last)) 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_type __old_capacity = capacity(); 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.insert(__pos._M_iterator, __first, __last); 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Compare_Capacity(__old_capacity); 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_MEMBER_TEMPLATES) || !defined (_STLP_NO_METHOD_SPECIALIZATION) 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void insert(iterator __pos, 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const_iterator __first, const_iterator __last) { 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert //Sequence requirements 23.1.1 Table 67: 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_not_owner(&_M_iter_list, __first)); 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_type __old_capacity = capacity(); 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.insert(__pos._M_iterator, __first._M_iterator, __last._M_iterator); 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Compare_Capacity(__old_capacity); 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void insert(iterator __pos, 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator __first, iterator __last) { 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert //Sequence requirements 23.1.1 Table 67: 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_not_owner(&_M_iter_list, __first)); 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert size_type __old_capacity = capacity(); 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.insert(__pos._M_iterator, __first._M_iterator, __last._M_iterator); 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Compare_Capacity(__old_capacity); 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void insert (iterator __pos, size_type __n, const _Tp& __x){ 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Check_Overflow(__n); 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.insert(__pos._M_iterator, __n, __x); 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void pop_back() { 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_iterator(end()); 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.pop_back(); 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator erase(iterator __pos) { 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_iterators(__pos, end()); 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator)); 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert iterator erase(iterator __first, iterator __last) { 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_iterators(__first, end()); 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator)); 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_DONT_SUP_DFLT_PARAM) 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void resize(size_type __new_size, const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void resize(size_type __new_size, const _Tp& __x) { 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert if (__new_size > capacity()) { 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert else if (__new_size < size()) { 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_iterators(begin() + __new_size, end()); 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.resize(__new_size, __x); 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_DONT_SUP_DFLT_PARAM) 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void resize(size_type __new_size) { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_MEMBER_TEMPLATES) 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert template <class _InputIterator> 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void assign(_InputIterator __first, _InputIterator __last) { 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.assign(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertprivate: 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void _M_assign(const value_type *__first, const value_type *__last) { 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.assign(__first, __last); 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 38911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpublic: 39011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void assign(const value_type *__first, const value_type *__last) { 39111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first,__last)) 39211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_assign(__first, __last); 39311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 39411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 39511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void assign(const_iterator __first, const_iterator __last) { 39611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) 39711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_assign(__first._M_iterator, __last._M_iterator); 39811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 39911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 40011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertpublic: 40211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void assign(size_type __n, const _Tp& __val) { 40311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 40411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.assign(__n, __val); 40511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 40611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 40711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void clear() { 40811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Invalidate_all(); 40911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.clear(); 41011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 41111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void push_back(const _Tp& __x) { 41211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Check_Overflow(1); 41311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _M_non_dbg_impl.push_back(__x); 41411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } 41511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 41611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 41711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_END_NAMESPACE 41811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 41911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef _STLP_NON_DBG_VECTOR 42011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 42111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* _STLP_DBG_VECTOR_H */ 42211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 42311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Local Variables: 42411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// mode:C++ 42511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// End: 426