.TH "__gnu_cxx::__pool_alloc_base" 3cxx "libstdc++" \" -*- nroff -*-
.ad l
.nh
.SH NAME
__gnu_cxx::__pool_alloc_base \- Base class for __pool_alloc\&.  

.SH SYNOPSIS
.br
.PP
.PP
\fR#include <pool_allocator\&.h>\fP
.PP
Inherited by \fB__gnu_cxx::__pool_alloc< _Tp1 >\fP\fR [private]\fP, and \fB__gnu_cxx::__pool_alloc< _Tp >\fP\fR [private]\fP\&.
.SS "Protected Types"

.in +1c
.ti -1c
.RI "enum { \fB_S_free_list_size\fP }"
.br
.ti -1c
.RI "enum { \fB_S_max_bytes\fP }"
.br
.ti -1c
.RI "enum { \fB_S_align\fP }"
.br
.in -1c
.SS "Protected Member Functions"

.in +1c
.ti -1c
.RI "char * \fB_M_allocate_chunk\fP (size_t __n, int &__nobjs)"
.br
.ti -1c
.RI "_Obj *volatile * \fB_M_get_free_list\fP (size_t __bytes)  throw ()"
.br
.ti -1c
.RI "__mutex & \fB_M_get_mutex\fP ()  throw ()"
.br
.ti -1c
.RI "void * \fB_M_refill\fP (size_t __n)"
.br
.ti -1c
.RI "size_t \fB_M_round_up\fP (size_t __bytes)"
.br
.in -1c
.SS "Static Protected Attributes"

.in +1c
.ti -1c
.RI "static char * \fB_S_end_free\fP"
.br
.ti -1c
.RI "static _Obj *volatile \fB_S_free_list\fP [_S_free_list_size]"
.br
.ti -1c
.RI "static size_t \fB_S_heap_size\fP"
.br
.ti -1c
.RI "static char * \fB_S_start_free\fP"
.br
.in -1c
.SH "Detailed Description"
.PP 
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)\&.

.PP
Important implementation properties:
.IP "0." 4
If globally mandated, then allocate objects from new
.IP "1." 4
If the clients request an object of size > _S_max_bytes, the resulting object will be obtained directly from new
.IP "2." 4
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\&. 
.PP


.SH "Author"
.PP 
Generated automatically by Doxygen for libstdc++ from the source code\&.
