# __gnu_cxx::__pool_alloc< _Tp > Class Template Reference
[Allocators]

Allocator using a memory pool with a single lock. More...

Inheritance diagram for __gnu_cxx::__pool_alloc< _Tp >:

List of all members.

## Public Types

- typedef const _Tp * const_pointer
- typedef const _Tp & const_reference
- typedef ptrdiff_t difference_type
- typedef _Tp * pointer
- typedef _Tp & reference
- typedef size_t size_type
- typedef _Tp value_type

## Public Member Functions

- template<typename _Tp1 > __pool_alloc (const __pool_alloc< _Tp1 > &) throw ()
- __pool_alloc (const __pool_alloc &) throw ()
- const_pointer address (const_reference __x) const
- pointer address (reference __x) const
- pointer allocate (size_type __n, const void *=0)
- template<typename... _Args> void construct (pointer __p, _Args &&...__args)
- void construct (pointer __p, const _Tp &__val)
- void deallocate (pointer __p, size_type __n)
- void destroy (pointer __p)
- size_type max_size () const throw ()

## Private Types

- enum { _S_align }
- enum { _S_max_bytes }
- enum { _S_free_list_size }

  ## Private Member Functions

  - char * _M_allocate_chunk (size_t __n, int &__nobjs)
  - _Obj *volatile * _M_get_free_list (size_t __bytes)
  - __mutex & _M_get_mutex ()
  - void * _M_refill (size_t __n)
  - size_t _M_round_up (size_t __bytes)

  ## Static Private Attributes

  - static char * _S_end_free
  - static _Obj *volatile _S_free_list [_S_free_list_size]
  - static size_t _S_heap_size
  - static char * _S_start_free

  ## Detailed Description

  ### template<typename _Tp>
  class __gnu_cxx::__pool_alloc< _Tp >

  Allocator using a memory pool with a single lock.

  Definition at line 122 of file pool_allocator.h.

  The documentation for this class was generated from the following file:
  - pool_allocator.h