44 #define _ALLOCATOR_H 1 48 #if __cplusplus >= 201103L 52 #define __cpp_lib_incomplete_container_elements 201505 54 namespace std _GLIBCXX_VISIBILITY(default)
56 _GLIBCXX_BEGIN_NAMESPACE_VERSION
68 typedef size_t size_type;
69 typedef ptrdiff_t difference_type;
70 typedef void* pointer;
71 typedef const void* const_pointer;
72 typedef void value_type;
74 template<
typename _Tp1>
78 #if __cplusplus >= 201103L 83 #define __cpp_lib_allocator_is_always_equal 201411 86 template<
typename _Up,
typename... _Args>
88 construct(_Up* __p, _Args&&... __args)
89 { ::new((
void *)__p) _Up(std::forward<_Args>(__args)...); }
91 template<
typename _Up>
93 destroy(_Up* __p) { __p->~_Up(); }
105 template<
typename _Tp>
109 typedef size_t size_type;
110 typedef ptrdiff_t difference_type;
111 typedef _Tp* pointer;
112 typedef const _Tp* const_pointer;
113 typedef _Tp& reference;
114 typedef const _Tp& const_reference;
115 typedef _Tp value_type;
117 template<
typename _Tp1>
121 #if __cplusplus >= 201103L 132 template<
typename _Tp1>
140 template<
typename _T1,
typename _T2>
143 _GLIBCXX_USE_NOEXCEPT
146 template<
typename _Tp>
149 _GLIBCXX_USE_NOEXCEPT
152 template<
typename _T1,
typename _T2>
155 _GLIBCXX_USE_NOEXCEPT
158 template<
typename _Tp>
161 _GLIBCXX_USE_NOEXCEPT
168 #if _GLIBCXX_EXTERN_TEMPLATE 174 #undef __allocator_base 177 template<
typename _Alloc,
bool = __is_empty(_Alloc)>
179 {
static void _S_do_it(_Alloc&, _Alloc&) _GLIBCXX_NOEXCEPT { } };
181 template<
typename _Alloc>
182 struct __alloc_swap<_Alloc, false>
185 _S_do_it(_Alloc& __one, _Alloc& __two) _GLIBCXX_NOEXCEPT
194 template<
typename _Alloc,
bool = __is_empty(_Alloc)>
198 _S_do_it(
const _Alloc&,
const _Alloc&)
202 template<
typename _Alloc>
203 struct __alloc_neq<_Alloc, false>
206 _S_do_it(
const _Alloc& __one,
const _Alloc& __two)
207 {
return __one != __two; }
210 #if __cplusplus >= 201103L 211 template<
typename _Tp,
bool 212 = __or_<is_copy_constructible<typename _Tp::value_type>,
213 is_nothrow_move_constructible<typename _Tp::value_type>>::value>
214 struct __shrink_to_fit_aux
215 {
static bool _S_do_it(_Tp&) noexcept {
return false; } };
217 template<
typename _Tp>
218 struct __shrink_to_fit_aux<_Tp, true>
221 _S_do_it(_Tp& __c) noexcept
226 _Tp(__make_move_if_noexcept_iterator(__c.begin()),
227 __make_move_if_noexcept_iterator(__c.end()),
228 __c.get_allocator()).swap(__c);
240 _GLIBCXX_END_NAMESPACE_VERSION
An allocator that uses global new, as per [20.4].This is precisely the allocator defined in the C++ S...
The standard allocator, as per [20.4].
ISO C++ entities toplevel namespace is std.