29 #ifndef _GLIBCXX_PROFILE_DEQUE
30 #define _GLIBCXX_PROFILE_DEQUE 1
34 namespace std _GLIBCXX_VISIBILITY(default)
39 template<
typename _Tp,
typename _Allocator = std::allocator<_Tp> >
41 :
public _GLIBCXX_STD_C::deque<_Tp, _Allocator>
43 typedef _GLIBCXX_STD_C::deque<_Tp, _Allocator>
_Base;
46 typedef typename _Base::size_type size_type;
47 typedef typename _Base::value_type value_type;
51 #if __cplusplus < 201103L
67 :
_Base(std::move(__d), __a) { }
72 const _Allocator& __a = _Allocator())
77 deque(
const _Allocator& __a)
80 #if __cplusplus >= 201103L
82 deque(size_type __n,
const _Allocator& __a = _Allocator())
85 deque(size_type __n,
const _Tp& __value,
86 const _Allocator& __a = _Allocator())
87 :
_Base(__n, __value, __a) { }
90 deque(size_type __n,
const _Tp& __value = _Tp(),
91 const _Allocator& __a = _Allocator())
92 :
_Base(__n, __value, __a) { }
95 #if __cplusplus >= 201103L
96 template<
typename _InputIterator,
97 typename = std::_RequireInputIter<_InputIterator>>
99 template<
typename _InputIterator>
101 deque(_InputIterator __first, _InputIterator __last,
102 const _Allocator& __a = _Allocator())
103 :
_Base(__first, __last, __a)
106 deque(
const _Base& __x)
109 #if __cplusplus < 201103L
111 operator=(
const deque& __x)
118 operator=(
const deque&) =
default;
121 operator=(deque&&) =
default;
133 _GLIBCXX_NOEXCEPT_IF( noexcept(declval<_Base&>().swap(__x)) )
134 { _Base::swap(__x); }
137 _M_base() _GLIBCXX_NOEXCEPT {
return *
this; }
140 _M_base()
const _GLIBCXX_NOEXCEPT {
return *
this; }
143 template<
typename _Tp,
typename _Alloc>
147 {
return __lhs._M_base() == __rhs._M_base(); }
149 template<
typename _Tp,
typename _Alloc>
153 {
return __lhs._M_base() != __rhs._M_base(); }
155 template<
typename _Tp,
typename _Alloc>
157 operator<(const deque<_Tp, _Alloc>& __lhs,
158 const deque<_Tp, _Alloc>& __rhs)
159 {
return __lhs._M_base() < __rhs._M_base(); }
161 template<
typename _Tp,
typename _Alloc>
163 operator<=(const deque<_Tp, _Alloc>& __lhs,
164 const deque<_Tp, _Alloc>& __rhs)
165 {
return __lhs._M_base() <= __rhs._M_base(); }
167 template<
typename _Tp,
typename _Alloc>
169 operator>=(
const deque<_Tp, _Alloc>& __lhs,
170 const deque<_Tp, _Alloc>& __rhs)
171 {
return __lhs._M_base() >= __rhs._M_base(); }
173 template<
typename _Tp,
typename _Alloc>
175 operator>(
const deque<_Tp, _Alloc>& __lhs,
176 const deque<_Tp, _Alloc>& __rhs)
177 {
return __lhs._M_base() > __rhs._M_base(); }
179 template<
typename _Tp,
typename _Alloc>
181 swap(deque<_Tp, _Alloc>& __lhs, deque<_Tp, _Alloc>& __rhs)
182 _GLIBCXX_NOEXCEPT_IF(noexcept(__lhs.swap(__rhs)))
183 { __lhs.swap(__rhs); }
A standard container using fixed-size memory allocation and constant-time manipulation of elements at...
Class std::deque wrapper with performance instrumentation.