__gnu_cxx::__mt_alloc< _Tp, _Poolp > Class Template Reference
Utilities » Memory » Allocators

`#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 | ( |  | ) |

inline noexcept

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 > & |  | ) |

inline noexcept

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 > & |  | ) |

inline noexcept

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 | ( |  | ) |

inline noexcept

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

inline noexcept inherited

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

inline noexcept inherited

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 )

nodiscard

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 )

inline inherited

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 | ) |

inline inherited

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

inline noexcept inherited

Definition at line 596 of file mt_allocator.h.

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

- mt_allocator.h