STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Macros | Functions
scoped_allocator File Reference
#include <tuple>
#include <xmemory0>

Classes

class  scoped_allocator_adaptor< _Outer, _Inner >
 
struct  _Scoped_propagate_on_container_copy< _Outer, _Inner >
 
struct  _Scoped_propagate_on_container_copy< _Outer >
 
struct  _Scoped_propagate_on_container_move< _Outer, _Inner >
 
struct  _Scoped_propagate_on_container_move< _Outer >
 
struct  _Scoped_propagate_on_container_swap< _Outer, _Inner >
 
struct  _Scoped_propagate_on_container_swap< _Outer >
 
struct  _Scoped_is_always_equal< _Outer, _Inner >
 
struct  _Scoped_is_always_equal< _Outer >
 
struct  _Scoped_outermost_allocator< _Outer >
 
struct  _Scoped_base< _Outer, _Inner >
 
struct  _Scoped_base< _Outer, _Inner0, _Inner...>
 
struct  _Scoped_base< _Outer >
 
class  scoped_allocator_adaptor< _Outer, _Inner >
 
struct  scoped_allocator_adaptor< _Outer, _Inner >::rebind< _Other >
 

Macros

#define _SCOPED_ALLOCATOR_
 

Functions

template<class _Outermost , class _Inner , class _Ty , class... _Types, class _Dont_care >
void _Scoped_construct (_Outermost, _Inner, false_type, _Dont_care, _Ty *_Ptr, _Types &&..._Args)
 
template<class _Outermost , class _Inner , class _Ty , class... _Types>
void _Scoped_construct (_Outermost _Alval, _Inner _Inner_alval, true_type, false_type, _Ty *_Ptr, _Types &&..._Args)
 
template<class _Outermost , class _Inner , class _Ty , class... _Types>
void _Scoped_construct (_Outermost _Alval, _Inner _Inner_alval, true_type, true_type, _Ty *_Ptr, _Types &&..._Args)
 
template<class _Alloc , class _Ty , class... _Atypes, class _Dont_care >
tuple< _Atypes...> _Scoped_construct_tuple (_Alloc &, false_type, _Dont_care, tuple< _Atypes...> _Val)
 
template<class _Alloc , class _Ty , class... _Atypes>
tuple< allocator_arg_t, _Alloc &, _Atypes...> _Scoped_construct_tuple (_Alloc &_Alty, true_type, false_type, tuple< _Atypes...> _Val)
 
template<class _Alloc , class _Ty , class... _Atypes>
tuple< _Atypes..., _Alloc & > _Scoped_construct_tuple (_Alloc &_Alty, true_type, true_type, tuple< _Atypes...> _Val)
 
template<class _Inner , class _Ty1 , class _Ty2 , class... _Uy1, class... _Uy2>
void _Scoped_construct_pair (_Inner _Inner_alval, pair< _Ty1, _Ty2 > *_Ptr, tuple< _Uy1...> _Val1, tuple< _Uy2...> _Val2)
 
template<class _Outer1 , class _Outer2 , class _Inner1 , class... _Inner>
bool operator== (const scoped_allocator_adaptor< _Outer1, _Inner1, _Inner...> &_Left, const scoped_allocator_adaptor< _Outer2, _Inner1, _Inner...> &_Right) _NOEXCEPT
 
template<class _Outer1 , class _Outer2 >
bool operator== (const scoped_allocator_adaptor< _Outer1 > &_Left, const scoped_allocator_adaptor< _Outer2 > &_Right) _NOEXCEPT
 
template<class _Outer1 , class _Outer2 , class... _Inner>
bool operator!= (const scoped_allocator_adaptor< _Outer1, _Inner...> &_Left, const scoped_allocator_adaptor< _Outer2, _Inner...> &_Right) _NOEXCEPT
 

Macro Definition Documentation

#define _SCOPED_ALLOCATOR_

Function Documentation

template<class _Outermost , class _Inner , class _Ty , class... _Types, class _Dont_care >
void _Scoped_construct ( _Outermost  ,
_Inner  ,
false_type  ,
_Dont_care  ,
_Ty *  _Ptr,
_Types &&...  _Args 
)
138  { // construct with optional arguments, no allocator
139  ::new (static_cast<void *>(_Ptr)) _Ty(_STD forward<_Types>(_Args)...);
140  }
constexpr _Ty && forward(typename remove_reference< _Ty >::type &_Arg) _NOEXCEPT
Definition: type_traits:1273
template<class _Outermost , class _Inner , class _Ty , class... _Types>
void _Scoped_construct ( _Outermost  _Alval,
_Inner  _Inner_alval,
true_type  ,
false_type  ,
_Ty *  _Ptr,
_Types &&...  _Args 
)
149  { // construct with optional arguments, leading allocator
151  allocator_arg, _Inner_alval,
152  _STD forward<_Types>(_Args)...);
153  }
constexpr allocator_arg_t allocator_arg
Definition: xutility:3834
static void construct(_Alloc &_Al, _Ty *_Ptr, _Types &&..._Args)
Definition: xmemory0:621
template<class _Outermost , class _Inner , class _Ty , class... _Types>
void _Scoped_construct ( _Outermost  _Alval,
_Inner  _Inner_alval,
true_type  ,
true_type  ,
_Ty *  _Ptr,
_Types &&...  _Args 
)
162  { // construct with optional arguments, trailing allocator
164  _STD forward<_Types>(_Args)...,
165  _Inner_alval);
166  }
static void construct(_Alloc &_Al, _Ty *_Ptr, _Types &&..._Args)
Definition: xmemory0:621
template<class _Inner , class _Ty1 , class _Ty2 , class... _Uy1, class... _Uy2>
void _Scoped_construct_pair ( _Inner  _Inner_alval,
pair< _Ty1, _Ty2 > *  _Ptr,
tuple< _Uy1...>  _Val1,
tuple< _Uy2...>  _Val2 
)
211  { // construct pair from tuples
212  ::new (static_cast<void *>(_Ptr)) pair<_Ty1, _Ty2>(piecewise_construct,
213  _Scoped_construct_tuple<_Inner, _Ty1, _Uy1...>(
214  _Inner_alval,
215  uses_allocator<_Ty1, _Inner>(),
216  is_constructible<_Ty1, _Uy1..., _Inner>(),
217  _STD move(_Val1)),
218  _Scoped_construct_tuple<_Inner, _Ty2, _Uy2...>(
219  _Inner_alval,
220  uses_allocator<_Ty2, _Inner>(),
221  is_constructible<_Ty2, _Uy2..., _Inner>(),
222  _STD move(_Val2)));
223  }
tuple< _Atypes...> _Scoped_construct_tuple(_Alloc &, false_type, _Dont_care, tuple< _Atypes...> _Val)
Definition: scoped_allocator:174
constexpr piecewise_construct_t piecewise_construct
Definition: utility:67
Definition: type_traits:486
Definition: utility:75
constexpr remove_reference< _Ty >::type && move(_Ty &&_Arg) _NOEXCEPT
Definition: type_traits:1290
template<class _Alloc , class _Ty , class... _Atypes, class _Dont_care >
tuple<_Atypes...> _Scoped_construct_tuple ( _Alloc &  ,
false_type  ,
_Dont_care  ,
tuple< _Atypes...>  _Val 
)
176  { // construct tuple from tuple argument, no allocator
177  return (_STD move(_Val));
178  }
constexpr remove_reference< _Ty >::type && move(_Ty &&_Arg) _NOEXCEPT
Definition: type_traits:1290
template<class _Alloc , class _Ty , class... _Atypes>
tuple<allocator_arg_t, _Alloc&, _Atypes...> _Scoped_construct_tuple ( _Alloc &  _Alty,
true_type  ,
false_type  ,
tuple< _Atypes...>  _Val 
)
186  { // construct tuple from tuple argument, leading allocator
188  tuple<_Alloc&>(_Alty), _STD move(_Val)));
189  }
constexpr allocator_arg_t allocator_arg
Definition: xutility:3834
constexpr _Tuple_cat1< _Tuples...>::type tuple_cat(_Tuples &&..._Tpls)
Definition: tuple:1132
Definition: tuple:226
constexpr remove_reference< _Ty >::type && move(_Ty &&_Arg) _NOEXCEPT
Definition: type_traits:1290
template<class _Alloc , class _Ty , class... _Atypes>
tuple<_Atypes..., _Alloc&> _Scoped_construct_tuple ( _Alloc &  _Alty,
true_type  ,
true_type  ,
tuple< _Atypes...>  _Val 
)
197  { // construct tuple from tuple argument, trailing allocator
198  return (_STD tuple_cat(_STD move(_Val),
199  tuple<_Alloc&>(_Alty)));
200  }
constexpr _Tuple_cat1< _Tuples...>::type tuple_cat(_Tuples &&..._Tpls)
Definition: tuple:1132
Definition: tuple:226
constexpr remove_reference< _Ty >::type && move(_Ty &&_Arg) _NOEXCEPT
Definition: type_traits:1290
template<class _Outer1 , class _Outer2 , class... _Inner>
bool operator!= ( const scoped_allocator_adaptor< _Outer1, _Inner...> &  _Left,
const scoped_allocator_adaptor< _Outer2, _Inner...> &  _Right 
)
inline
588  { // compare scoped_allocator_adaptors for equality
589  return (!(_Left == _Right));
590  }
template<class _Outer1 , class _Outer2 , class _Inner1 , class... _Inner>
bool operator== ( const scoped_allocator_adaptor< _Outer1, _Inner1, _Inner...> &  _Left,
const scoped_allocator_adaptor< _Outer2, _Inner1, _Inner...> &  _Right 
)
inline
568  { // compare scoped_allocator_adaptors for equality
569  return (_Left.outer_allocator() == _Right.outer_allocator()
570  && _Left.inner_allocator() == _Right.inner_allocator());
571  }
outer_allocator_type & outer_allocator() _NOEXCEPT
Definition: scoped_allocator:389
inner_allocator_type & inner_allocator() _NOEXCEPT
Definition: scoped_allocator:399
template<class _Outer1 , class _Outer2 >
bool operator== ( const scoped_allocator_adaptor< _Outer1 > &  _Left,
const scoped_allocator_adaptor< _Outer2 > &  _Right 
)
inline
578  { // compare scoped_allocator_adaptors for equality
579  return (_Left.outer_allocator() == _Right.outer_allocator());
580  }
outer_allocator_type & outer_allocator() _NOEXCEPT
Definition: scoped_allocator:389