libstdc++
__gnu_cxx::__mt_alloc< _Tp, _Poolp > Class Template Reference

#include <mt_allocator.h>

Inheritance diagram for __gnu_cxx::__mt_alloc< _Tp, _Poolp >:
[legend]

Public Types

typedef _Poolp __policy_type
 
typedef _Poolp::pool_type __pool_type
 
typedef const _Tp * const_pointer
 
typedef const _Tp & const_reference
 
typedef std::ptrdiff_t difference_type
 
typedef _Tp * pointer
 
typedef std::true_type propagate_on_container_move_assignment
 
typedef _Tp & reference
 
typedef std::size_t size_type
 
typedef _Tp value_type
 

Public Member Functions

 __mt_alloc (const __mt_alloc &) noexcept
 
template<typename _Tp1 , typename _Poolp1 >
 __mt_alloc (const __mt_alloc< _Tp1, _Poolp1 > &) noexcept
 
const __pool_base::_Tune _M_get_options ()
 
void _M_set_options (__pool_base::_Tune __t)
 
const_pointer address (const_reference __x) const noexcept
 
pointer address (reference __x) const noexcept
 
pointer allocate (size_type __n, const void *=0)
 
template<typename _Up , typename... _Args>
void construct (_Up *__p, _Args &&... __args)
 
void deallocate (pointer __p, size_type __n)
 
template<typename _Up >
void destroy (_Up *__p)
 
size_type max_size () const noexcept
 

Detailed Description

template<typename _Tp, typename _Poolp = __common_pool_policy<__pool, true >>
class __gnu_cxx::__mt_alloc< _Tp, _Poolp >

This is a fixed size (power of 2) allocator which - when compiled with thread support - will maintain one freelist per size per thread plus a global one. Steps are taken to limit the per thread freelist sizes (by returning excess back to the global list).

Further details: https://gcc.gnu.org/onlinedocs/libstdc++/manual/mt_allocator.html

Definition at line 639 of file mt_allocator.h.

Member Typedef Documentation

◆ __policy_type

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef _Poolp __gnu_cxx::__mt_alloc< _Tp, _Poolp >::__policy_type

Definition at line 649 of file mt_allocator.h.

◆ __pool_type

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef _Poolp::pool_type __gnu_cxx::__mt_alloc< _Tp, _Poolp >::__pool_type

Definition at line 650 of file mt_allocator.h.

◆ const_pointer

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef const _Tp* __gnu_cxx::__mt_alloc< _Tp, _Poolp >::const_pointer

Definition at line 645 of file mt_allocator.h.

◆ const_reference

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef const _Tp& __gnu_cxx::__mt_alloc< _Tp, _Poolp >::const_reference

Definition at line 647 of file mt_allocator.h.

◆ difference_type

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef std::ptrdiff_t __gnu_cxx::__mt_alloc< _Tp, _Poolp >::difference_type

Definition at line 643 of file mt_allocator.h.

◆ pointer

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef _Tp* __gnu_cxx::__mt_alloc< _Tp, _Poolp >::pointer

Definition at line 644 of file mt_allocator.h.

◆ propagate_on_container_move_assignment

template<typename _Tp >
typedef std::true_type __gnu_cxx::__mt_alloc_base< _Tp >::propagate_on_container_move_assignment
inherited

Definition at line 584 of file mt_allocator.h.

◆ reference

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef _Tp& __gnu_cxx::__mt_alloc< _Tp, _Poolp >::reference

Definition at line 646 of file mt_allocator.h.

◆ size_type

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef std::size_t __gnu_cxx::__mt_alloc< _Tp, _Poolp >::size_type

Definition at line 642 of file mt_allocator.h.

◆ value_type

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
typedef _Tp __gnu_cxx::__mt_alloc< _Tp, _Poolp >::value_type

Definition at line 648 of file mt_allocator.h.

Constructor & Destructor Documentation

◆ __mt_alloc() [1/3]

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
__gnu_cxx::__mt_alloc< _Tp, _Poolp >::__mt_alloc ( )
inlinenoexcept

Definition at line 659 of file mt_allocator.h.

◆ __mt_alloc() [2/3]

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
__gnu_cxx::__mt_alloc< _Tp, _Poolp >::__mt_alloc ( const __mt_alloc< _Tp, _Poolp > &  )
inlinenoexcept

Definition at line 661 of file mt_allocator.h.

◆ __mt_alloc() [3/3]

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
template<typename _Tp1 , typename _Poolp1 >
__gnu_cxx::__mt_alloc< _Tp, _Poolp >::__mt_alloc ( const __mt_alloc< _Tp1, _Poolp1 > &  )
inlinenoexcept

Definition at line 664 of file mt_allocator.h.

◆ ~__mt_alloc()

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
__gnu_cxx::__mt_alloc< _Tp, _Poolp >::~__mt_alloc ( )
inlinenoexcept

Definition at line 666 of file mt_allocator.h.

Member Function Documentation

◆ _M_get_options()

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
const __pool_base::_Tune __gnu_cxx::__mt_alloc< _Tp, _Poolp >::_M_get_options ( )
inline

Definition at line 675 of file mt_allocator.h.

◆ _M_set_options()

template<typename _Tp , typename _Poolp = __common_pool_policy<__pool, true >>
void __gnu_cxx::__mt_alloc< _Tp, _Poolp >::_M_set_options ( __pool_base::_Tune  __t)
inline

Definition at line 682 of file mt_allocator.h.

◆ address() [1/2]

template<typename _Tp >
const_pointer __gnu_cxx::__mt_alloc_base< _Tp >::address ( const_reference  __x) const
inlinenoexceptinherited

Definition at line 592 of file mt_allocator.h.

◆ address() [2/2]

template<typename _Tp >
pointer __gnu_cxx::__mt_alloc_base< _Tp >::address ( reference  __x) const
inlinenoexceptinherited

Definition at line 588 of file mt_allocator.h.

◆ allocate()

template<typename _Tp , typename _Poolp >
__mt_alloc< _Tp, _Poolp >::pointer __gnu_cxx::__mt_alloc< _Tp, _Poolp >::allocate ( size_type  __n,
const void *  = 0 
)

Definition at line 688 of file mt_allocator.h.

◆ construct()

template<typename _Tp >
template<typename _Up , typename... _Args>
void __gnu_cxx::__mt_alloc_base< _Tp >::construct ( _Up *  __p,
_Args &&...  __args 
)
inlineinherited

Definition at line 602 of file mt_allocator.h.

◆ deallocate()

template<typename _Tp , typename _Poolp >
void __gnu_cxx::__mt_alloc< _Tp, _Poolp >::deallocate ( pointer  __p,
size_type  __n 
)

Definition at line 744 of file mt_allocator.h.

◆ destroy()

template<typename _Tp >
template<typename _Up >
void __gnu_cxx::__mt_alloc_base< _Tp >::destroy ( _Up *  __p)
inlineinherited

Definition at line 607 of file mt_allocator.h.

◆ max_size()

template<typename _Tp >
size_type __gnu_cxx::__mt_alloc_base< _Tp >::max_size ( ) const
inlinenoexceptinherited

Definition at line 596 of file mt_allocator.h.


The documentation for this class was generated from the following file: