# __gnu_cxx::__pool_alloc_base Class Reference

Inheritance diagram for __gnu_cxx::__pool_alloc_base:

List of all members.

## Detailed Description

Base class for __pool_alloc.

Uses various allocators to fulfill underlying requests (and makes as few requests as possible when in default high-speed pool mode).

Important implementation properties: 0. If globally mandated, then allocate objects from new 1. If the clients request an object of size > _S_max_bytes, the resulting object will be obtained directly from new 2. In all other cases, we allocate an object of size exactly _S_round_up(requested_size). Thus the client has enough size information that we can return the object to the proper free list without permanently losing part of the object.

Definition at line 79 of file pool_allocator.h.

## Protected Types

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

## Protected 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 Protected 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

## Classes

- union _Obj

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

- pool_allocator.h