177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner/* 277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Copyright (c) 2004 377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Francois Dumont 477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * This material is provided "as is", with absolutely no warranty expressed 677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * or implied. Any use is at your own risk. 777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Permission to use or copy this software for any purpose is hereby granted 977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * without fee, provided the above notices are retained on all copies. 1077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * Permission to modify the code and to distribute modified code is granted, 1177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * provided the above notices are retained, and a notice that the code was 1277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * modified is included with the above copyright notice. 1377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * 1477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 1577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 1677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner/* NOTE: This is an internal header file, included by other STL headers. 1777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * You should not attempt to use it directly. 1877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 1977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_SPECIALIZED_DEQUE_H 2177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#define _STLP_SPECIALIZED_DEQUE_H 2277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#ifndef _STLP_POINTERS_SPEC_TOOLS_H 2477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# include <stl/pointers/_tools.h> 2577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 2677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 2777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_BEGIN_NAMESPACE 2877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_PRIV_NAMESPACE 2977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 3077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner/* 3177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner * struct helper to cast deque iterators: 3277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner */ 3377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _StorageT, class _ValueT> 3477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerstruct _DequeIteCast { 3577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Deque_iterator<_ValueT, _Nonconst_traits<_ValueT> > iterator; 3677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Deque_iterator<_ValueT, _Const_traits<_ValueT> > const_iterator; 3777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Deque_iterator<_StorageT, _Nonconst_traits<_StorageT> > storage_iterator; 3877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Deque_iterator<_StorageT, _Const_traits<_StorageT> > const_storage_iterator; 3977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _CastTraits<_StorageT, _ValueT> cast_traits; 4077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 4177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner static iterator to_value_type_ite (storage_iterator const& __ite) { 4277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator tmp; 4377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_cur = cast_traits::to_value_type_ptr(__ite._M_cur); 4477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_first = cast_traits::to_value_type_ptr(__ite._M_first); 4577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_last = cast_traits::to_value_type_ptr(__ite._M_last); 4677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_node = cast_traits::to_value_type_pptr(__ite._M_node); 4777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return tmp; 4877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 4977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner static storage_iterator to_storage_type_ite (iterator const& __ite) { 5077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner storage_iterator tmp; 5177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_cur = cast_traits::to_storage_type_ptr(__ite._M_cur); 5277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_first = cast_traits::to_storage_type_ptr(__ite._M_first); 5377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_last = cast_traits::to_storage_type_ptr(__ite._M_last); 5477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_node = cast_traits::to_storage_type_pptr(__ite._M_node); 5577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return tmp; 5677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 5777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 5877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner static const_iterator to_value_type_cite (const_storage_iterator const& __ite) { 5977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_iterator tmp; 6077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_cur = cast_traits::to_value_type_ptr(__ite._M_cur); 6177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_first = cast_traits::to_value_type_ptr(__ite._M_first); 6277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_last = cast_traits::to_value_type_ptr(__ite._M_last); 6377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_node = cast_traits::to_value_type_pptr(__ite._M_node); 6477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return tmp; 6577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 6677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 6777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner static const_storage_iterator to_storage_type_cite (const_iterator const& __ite) { 6877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_storage_iterator tmp; 6977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_cur = cast_traits::to_storage_type_ptr(__ite._M_cur); 7077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_first = cast_traits::to_storage_type_ptr(__ite._M_first); 7177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_last = cast_traits::to_storage_type_ptr(__ite._M_last); 7277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner tmp._M_node = cast_traits::to_storage_type_pptr(__ite._M_node); 7377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner return tmp; 7477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 7577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 7677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 7777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#define DEQUE_IMPL _STLP_PTR_IMPL_NAME(deque) 7877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (__BORLANDC__) || defined (__DMC__) 7977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define typename 8077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 8177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 8277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) 8377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<size_t, void*, allocator<void*> >; 8477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<void***, void**, allocator<void**> >; 8577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_EXPORT template struct _STLP_CLASS_DECLSPEC _Deque_iterator<void*, _Nonconst_traits<void*> >; 8677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_EXPORT_TEMPLATE_CLASS _Deque_base<void*,allocator<void*> >; 8777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_EXPORT_TEMPLATE_CLASS DEQUE_IMPL<void*,allocator<void*> >; 8877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 8977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_DEBUG) 9177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# define deque _STLP_NON_DBG_NAME(deque) 9277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 9377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE 9477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 9577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 9677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnertemplate <class _Tp, _STLP_DFL_TMPL_PARAM(_Alloc, allocator<_Tp>) > 9777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerclass deque 9877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (deque) 9977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : public __stlport_class<deque<_Tp, _Alloc> > 10077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 10177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner{ 10277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _STLP_TYPENAME _STLP_PRIV _StorageType<_Tp>::_Type _StorageType; 10377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef typename _Alloc_traits<_StorageType, _Alloc>::allocator_type _StorageTypeAlloc; 10477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _STLP_PRIV DEQUE_IMPL<_StorageType, _StorageTypeAlloc> _Base; 10577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef deque<_Tp, _Alloc> _Self; 10677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 10777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _STLP_PRIV _CastTraits<_StorageType, _Tp> cast_traits; 10877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _STLP_PRIV _DequeIteCast<_StorageType, _Tp> ite_cast_traits; 10977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 11077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerpublic: 11177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _Tp value_type; 11277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef value_type* pointer; 11377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef const value_type* const_pointer; 11477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef value_type& reference; 11577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef const value_type& const_reference; 11677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef size_t size_type; 11777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef ptrdiff_t difference_type; 11877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef random_access_iterator_tag _Iterator_category; 11977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_FORCE_ALLOCATORS(value_type, _Alloc) 12077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef typename _Alloc_traits<value_type, _Alloc>::allocator_type allocator_type; 12177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _STLP_PRIV _Deque_iterator<value_type, _Nonconst_traits<value_type> > iterator; 12277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef _STLP_PRIV _Deque_iterator<value_type, _Const_traits<value_type> > const_iterator; 12377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 12477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; 12577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 12677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerpublic: // Basic accessors 12777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator begin() { return ite_cast_traits::to_value_type_ite(_M_impl.begin()); } 12877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator end() { return ite_cast_traits::to_value_type_ite(_M_impl.end()); } 12977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_iterator begin() const { return ite_cast_traits::to_value_type_cite(_M_impl.begin()); } 13077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_iterator end() const { return ite_cast_traits::to_value_type_cite(_M_impl.end()); } 13177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 13277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner reverse_iterator rbegin() { return reverse_iterator(end()); } 13377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner reverse_iterator rend() { return reverse_iterator(begin()); } 13477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_reverse_iterator rbegin() const 13577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return const_reverse_iterator(end()); } 13677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_reverse_iterator rend() const 13777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return const_reverse_iterator(begin()); } 13877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 13977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner reference operator[](size_type __n) 14077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return cast_traits::to_value_type_ref(_M_impl[__n]); } 14177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_reference operator[](size_type __n) const 14277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return cast_traits::to_value_type_cref(_M_impl[__n]); } 14377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 14477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner reference at(size_type __n) 14577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return cast_traits::to_value_type_ref(_M_impl.at(__n)); } 14677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_reference at(size_type __n) const 14777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return cast_traits::to_value_type_cref(_M_impl.at(__n)); } 14877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 14977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner reference front() { return cast_traits::to_value_type_ref(_M_impl.front()); } 15077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner reference back() { return cast_traits::to_value_type_ref(_M_impl.back()); } 15177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_reference front() const { return cast_traits::to_value_type_cref(_M_impl.front()); } 15277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_reference back() const { return cast_traits::to_value_type_cref(_M_impl.back()); } 15377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 15477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner size_type size() const { return _M_impl.size(); } 15577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner size_type max_size() const { return _M_impl.max_size(); } 15677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner bool empty() const { return _M_impl.empty(); } 15777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner allocator_type get_allocator() const { return _STLP_CONVERT_ALLOCATOR(_M_impl.get_allocator(), value_type); } 15877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 15977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner explicit deque(const allocator_type& __a = allocator_type()) 16077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} 16177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 16277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque(const _Self& __x) : _M_impl(__x._M_impl) {} 16377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 16477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_DONT_SUP_DFLT_PARAM) 16577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner explicit deque(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(value_type), 16677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 16777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque(size_type __n, const value_type& __val, 16877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ 16977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const allocator_type& __a = allocator_type()) 17077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(__n, cast_traits::to_storage_type_cref(__val), _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} 17177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner // int,long variants may be needed 17277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_DONT_SUP_DFLT_PARAM) 17377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner explicit deque(size_type __n) : _M_impl(__n) {} 17477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ 17577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 17677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_MEMBER_TEMPLATES) 17777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _InputIterator> 17877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque(_InputIterator __first, _InputIterator __last, 17977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) 18077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_USE_ITERATOR_WRAPPER) 18177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(__first, __last, 18277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) { 18377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 18477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) { 18577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 18677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_USE_ITERATOR_WRAPPER) 18777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner insert(end(), __first, __last); 18877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 18977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 19077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 19177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) 19277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _InputIterator> 19377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque(_InputIterator __first, _InputIterator __last) 19477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if !defined (_STLP_USE_ITERATOR_WRAPPER) 19577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(__first, __last) {} 19677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 19777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { insert(end(), __first, __last); } 19877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 19977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 20077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 20177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 20277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque(const_pointer __first, const_pointer __last, 20377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const allocator_type& __a = allocator_type() ) 20477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(cast_traits::to_storage_type_cptr(__first), 20577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner cast_traits::to_storage_type_cptr(__last), 20677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} 20777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 20877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque(const_iterator __first, const_iterator __last, 20977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const allocator_type& __a = allocator_type() ) 21077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(ite_cast_traits::to_storage_type_cite(__first), 21177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ite_cast_traits::to_storage_type_cite(__last), 21277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} 21377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /* _STLP_MEMBER_TEMPLATES */ 21477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 21577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_NO_MOVE_SEMANTIC) 21677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner deque(__move_source<_Self> src) 21777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner : _M_impl(__move_source<_Base>(src.get()._M_impl)) {} 21877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 21977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 22077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Self& operator= (const _Self& __x) { _M_impl = __x._M_impl; return *this; } 22177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 22277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void swap(_Self& __x) { _M_impl.swap(__x._M_impl); } 22377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) 22477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void _M_swap_workaround(_Self& __x) { swap(__x); } 22577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 22677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 22777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void assign(size_type __n, const value_type& __val) { 22877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.assign(__n, cast_traits::to_storage_type_cref(__val)); 22977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 23077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 23177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_MEMBER_TEMPLATES) 23277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_USE_ITERATOR_WRAPPER) 23377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprivate: 23477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _Integer> 23577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void _M_assign_dispatch(_Integer __n, _Integer __val, 23677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const __true_type&) 23777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { _M_impl.assign(__n, __val); } 23877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 23977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _InputIterator> 24077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, 24177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const __false_type&) { 24277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.assign(_STLP_TYPENAME _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), 24377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_TYPENAME _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); 24477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 24577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 24677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerpublic: 24777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 24877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _InputIterator> 24977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void assign(_InputIterator __first, _InputIterator __last) { 25077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_USE_ITERATOR_WRAPPER) 25177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; 25277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_assign_dispatch(__first, __last, _Integral()); 25377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 25477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.assign(__first, __last); 25577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 25677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 25777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 25877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void assign(const_pointer __first, const_pointer __last) 25977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { _M_impl.assign(cast_traits::to_storage_type_cptr(__first), 26077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner cast_traits::to_storage_type_cptr(__last)); } 26177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void assign(const_iterator __first, const_iterator __last) 26277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { _M_impl.assign(ite_cast_traits::to_storage_type_cite(__first), 26377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ite_cast_traits::to_storage_type_cite(__last)); } 26477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /* _STLP_MEMBER_TEMPLATES */ 26577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 26677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) 26777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void push_back(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(value_type)) 26877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 26977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void push_back(const value_type& __t) 27077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ 27177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { _M_impl.push_back(cast_traits::to_storage_type_cref(__t)); } 27277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 27377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) 27477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void push_front(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(value_type)) 27577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 27677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void push_front(const value_type& __t) 27777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ 27877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { _M_impl.push_front(cast_traits::to_storage_type_cref(__t)); } 27977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 28077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) 28177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void push_back() { _M_impl.push_back(); } 28277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void push_front() { _M_impl.push_front(); } 28377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ 28477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 28577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void pop_back() { _M_impl.pop_back(); } 28677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void pop_front() { _M_impl.pop_front(); } 28777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 28877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) 28977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator insert(iterator __pos, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) 29077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 29177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator insert(iterator __pos, const value_type& __x) 29277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ 29377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return ite_cast_traits::to_value_type_ite(_M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), 29477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner cast_traits::to_storage_type_cref(__x))); } 29577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 29677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) 29777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator insert(iterator __pos) { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(value_type)); } 29877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ 29977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 30077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void insert(iterator __pos, size_type __n, const value_type& __x) 30177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), __n, cast_traits::to_storage_type_cref(__x)); } 30277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 30377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_MEMBER_TEMPLATES) 30477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_USE_ITERATOR_WRAPPER) 30577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprivate: 30677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _Integer> 30777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, 30877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const __true_type&) { 30977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), __n, __val); 31077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 31177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 31277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _InputIterator> 31377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void _M_insert_dispatch(iterator __pos, 31477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _InputIterator __first, _InputIterator __last, 31577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const __false_type&) { 31677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), 31777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_TYPENAME _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), 31877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _STLP_TYPENAME _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); 31977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 32077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 32177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerpublic: 32277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 32377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 32477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner template <class _InputIterator> 32577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { 32677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# if defined (_STLP_USE_ITERATOR_WRAPPER) 32777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner // Check whether it's an integral type. If so, it's not an iterator. 32877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; 32977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_insert_dispatch(__pos, __first, __last, _Integral()); 33077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# else 33177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), __first, __last); 33277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# endif 33377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 33477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 33577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else /* _STLP_MEMBER_TEMPLATES */ 33677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void insert(iterator __pos, 33777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_pointer __first, const_pointer __last) { 33877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), 33977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner cast_traits::to_storage_type_cptr(__first), 34077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner cast_traits::to_storage_type_cptr(__last)); 34177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 34277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void insert(iterator __pos, 34377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner const_iterator __first, const_iterator __last) { 34477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), 34577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ite_cast_traits::to_storage_type_cite(__first), 34677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ite_cast_traits::to_storage_type_cite(__last)); 34777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner } 34877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 34977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /* _STLP_MEMBER_TEMPLATES */ 35077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 35177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if !defined (_STLP_DONT_SUP_DFLT_PARAM) 35277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void resize(size_type __new_size, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) 35377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#else 35477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void resize(size_type __new_size, const value_type& __x) 35577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ 35677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { _M_impl.resize(__new_size, cast_traits::to_storage_type_cref(__x)); } 35777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 35877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (_STLP_DONT_SUP_DFLT_PARAM) 35977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void resize(size_type __new_size) { _M_impl.resize(__new_size); } 36077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ 36177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 36277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator erase(iterator __pos) 36377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return ite_cast_traits::to_value_type_ite(_M_impl.erase(ite_cast_traits::to_storage_type_ite(__pos))); } 36477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 36577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner iterator erase(iterator __first, iterator __last) 36677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner { return ite_cast_traits::to_value_type_ite(_M_impl.erase(ite_cast_traits::to_storage_type_ite(__first), 36777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner ite_cast_traits::to_storage_type_ite(__last))); } 36877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner void clear() { _M_impl.clear(); } 36977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 37077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turnerprivate: 37177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner _Base _M_impl; 37277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner}; 37377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 37477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (deque) 37577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# undef deque 37677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_MOVE_TO_STD_NAMESPACE 37777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 37877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 37977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#undef DEQUE_IMPL 38077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#if defined (__BORLANDC__) || defined (__DMC__) 38177dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner# undef typename 38277dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif 38377dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 38477dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner_STLP_END_NAMESPACE 38577dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 38677dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner#endif /* _STLP_SPECIALIZED_DEQUE_H */ 38777dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner 38877dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// Local Variables: 38977dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// mode:C++ 39077dc872c5c4ae67e051d1bf7edf96ce36c7b9be2David 'Digit' Turner// End: 391