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_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 
)
116  { // construct with optional arguments, no allocator
117  ::new (_Ptr) _Ty(_STD forward<_Types>(_Args)...);
118  }
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 
)
127  { // construct with optional arguments, leading allocator
129  allocator_arg, _Inner_alval,
130  _STD forward<_Types>(_Args)...);
131  }
static void construct(_Alloc &_Al, _Ty *_Ptr, _Types &&..._Args)
Definition: xmemory0:465
const allocator_arg_t allocator_arg
Definition: xutility:3451
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 
)
140  { // construct with optional arguments, trailing allocator
142  _STD forward<_Types>(_Args)...,
143  _Inner_alval);
144  }
static void construct(_Alloc &_Al, _Ty *_Ptr, _Types &&..._Args)
Definition: xmemory0:465
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 
)
189  { // construct pair from tuples
190  ::new (_Ptr) pair<_Ty1, _Ty2>(piecewise_construct,
191  _Scoped_construct_tuple<_Inner, _Ty1, _Uy1...>(
192  _Inner_alval,
193  uses_allocator<_Ty1, _Inner>(),
194  is_constructible<_Ty1, _Uy1..., _Inner>(),
195  _Val1),
196  _Scoped_construct_tuple<_Inner, _Ty2, _Uy2...>(
197  _Inner_alval,
198  uses_allocator<_Ty2, _Inner>(),
199  is_constructible<_Ty2, _Uy2..., _Inner>(),
200  _Val2));
201  }
tuple< _Atypes...> _Scoped_construct_tuple(_Alloc &, false_type, _Dont_care, tuple< _Atypes...> _Val)
Definition: scoped_allocator:152
Definition: type_traits:619
const piecewise_construct_t piecewise_construct
Definition: utility:69
Definition: utility:80
template<class _Alloc , class _Ty , class... _Atypes, class _Dont_care >
tuple<_Atypes...> _Scoped_construct_tuple ( _Alloc &  ,
false_type  ,
_Dont_care  ,
tuple< _Atypes...>  _Val 
)
154  { // construct tuple from tuple argument, no allocator
155  return (_Val);
156  }
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 
)
164  { // construct tuple from tuple argument, leading allocator
166  _Tuple_alloc, _Alty), _Val));
167  }
_Tuple_cat1< _Tuples...>::type tuple_cat(_Tuples &&..._Tpls)
Definition: tuple:724
const _Tuple_alloc_t _Tuple_alloc
Definition: tuple:66
Definition: tuple:127
template<class _Alloc , class _Ty , class... _Atypes>
tuple<_Atypes..., _Alloc&> _Scoped_construct_tuple ( _Alloc &  _Alty,
true_type  ,
true_type  ,
tuple< _Atypes...>  _Val 
)
175  { // construct tuple from tuple argument, trailing allocator
176  return (tuple_cat(_Val,
177  tuple<_Alloc&>(_Alty)));
178  }
_Tuple_cat1< _Tuples...>::type tuple_cat(_Tuples &&..._Tpls)
Definition: tuple:724
Definition: tuple:127
template<class _Outer1 , class _Outer2 , class... _Inner>
bool operator!= ( const scoped_allocator_adaptor< _Outer1, _Inner...> &  _Left,
const scoped_allocator_adaptor< _Outer2, _Inner...> &  _Right 
)
inline
562  { // compare scoped_allocator_adaptors for equality
563  return (!(_Left == _Right));
564  }
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
542  { // compare scoped_allocator_adaptors for equality
543  return (_Left.outer_allocator() == _Right.outer_allocator()
544  && _Left.inner_allocator() == _Right.inner_allocator());
545  }
outer_allocator_type & outer_allocator() _NOEXCEPT
Definition: scoped_allocator:363
inner_allocator_type & inner_allocator() _NOEXCEPT
Definition: scoped_allocator:373
template<class _Outer1 , class _Outer2 >
bool operator== ( const scoped_allocator_adaptor< _Outer1 > &  _Left,
const scoped_allocator_adaptor< _Outer2 > &  _Right 
)
inline
552  { // compare scoped_allocator_adaptors for equality
553  return (_Left.outer_allocator() == _Right.outer_allocator());
554  }
outer_allocator_type & outer_allocator() _NOEXCEPT
Definition: scoped_allocator:363