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 #if __cplusplus >= 201103L
134 noexcept( noexcept(declval<_Base>().swap(__x)) )
136 { _Base::swap(__x); }
139 _M_base() _GLIBCXX_NOEXCEPT {
return *
this; }
142 _M_base()
const _GLIBCXX_NOEXCEPT {
return *
this; }
145 template<
typename _Tp,
typename _Alloc>
149 {
return __lhs._M_base() == __rhs._M_base(); }
151 template<
typename _Tp,
typename _Alloc>
155 {
return __lhs._M_base() != __rhs._M_base(); }
157 template<
typename _Tp,
typename _Alloc>
159 operator<(const deque<_Tp, _Alloc>& __lhs,
160 const deque<_Tp, _Alloc>& __rhs)
161 {
return __lhs._M_base() < __rhs._M_base(); }
163 template<
typename _Tp,
typename _Alloc>
165 operator<=(const deque<_Tp, _Alloc>& __lhs,
166 const deque<_Tp, _Alloc>& __rhs)
167 {
return __lhs._M_base() <= __rhs._M_base(); }
169 template<
typename _Tp,
typename _Alloc>
171 operator>=(
const deque<_Tp, _Alloc>& __lhs,
172 const deque<_Tp, _Alloc>& __rhs)
173 {
return __lhs._M_base() >= __rhs._M_base(); }
175 template<
typename _Tp,
typename _Alloc>
177 operator>(
const deque<_Tp, _Alloc>& __lhs,
178 const deque<_Tp, _Alloc>& __rhs)
179 {
return __lhs._M_base() > __rhs._M_base(); }
181 template<
typename _Tp,
typename _Alloc>
183 swap(deque<_Tp, _Alloc>& __lhs, deque<_Tp, _Alloc>& __rhs)
184 { __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.
ISO C++ entities toplevel namespace is std.