__gnu_cxx::__pool_alloc_base(3cxx)
π
__gnu_cxx::__pool_alloc_base(3cxx) β the libstdc++ manual, but make it make sense
okay so welcome to the libstdc++ page for __gnu_cxx::__pool_alloc_base, bestie. It's the base-class icon behind __pool_alloc, and we're gonna get into it. π«Ά
β¨ NAME β¨
__gnu_cxx::__pool_alloc_base β Base class for __pool_alloc. periodt.
πΈ SYNOPSIS πΈ
pull it in with:
#include <pool_allocator.h>
also inherited by __gnu_cxx::__pool_alloc< _Tp > [private]. iykyk. π
π Protected Types π
these are the protected type members, no cap:
enum { _S_align }enum { _S_max_bytes }enum { _S_free_list_size }
π₯ Protected Member Functions π₯
the protected member functions, exactly as they appear:
char * _M_allocate_chunk (size_t __n, int &__nobjs)_Obj *volatile * _M_get_free_list (size_t __bytes) throw ()__mutex & _M_get_mutex () throw ()void * _M_refill (size_t __n)size_t _M_round_up (size_t __bytes)
π¦ Static Protected Attributes π¦
static protected attributes, slay:
static char * _S_end_freestatic _Obj *volatile _S_free_list [_S_free_list_size]static size_t _S_heap_sizestatic char * _S_start_free
π Detailed Description π
so __gnu_cxx::__pool_alloc_base is the Base class for __pool_alloc. It uses various allocators to fulfill underlying requests, and it makes as few requests as possible when it's in default high-speed pool mode. obsessed.
the important implementation properties are literally:
0.If it's globally mandated, then objects get allocated fromnew.1.If the clients request an object of size> _S_max_bytes, that resulting object is obtained directly fromnew.2.In every other case, we allocate an object of size exactly_S_round_up(requested_size). That way the client has enough size information for us to return the object to the proper free list without permanently losing part of the object.
π Author π
Generated automatically by Doxygen for libstdc++ from the source code. iconic behavior, honestly.
and that's the whole page, bestie π§ the footer/source line is libstdc++ + __gnu_cxx::__pool_alloc_base(3cxx) β that's the source/version bit, and there's no date shown on this page, just that footer energy. π«Άπ
π¦ where this page comes from
- debian trixie: libstdc++-12-doc 12.4.0-5
- debian trixie: libstdc++-13-doc 13.3.0-16
- debian trixie: libstdc++-14-doc 14.2.0-19
- ubuntu noble: libstdc++-10-doc 10.5.0-4ubuntu2
- ubuntu noble: libstdc++-10-doc 10.5.0-4ubuntu2.1
- ubuntu noble: libstdc++-11-doc 11.4.0-9ubuntu1
- ubuntu noble: libstdc++-11-doc 11.5.0-1ubuntu1~24.04.1
- ubuntu noble: libstdc++-12-doc 12.3.0-17ubuntu1
- ubuntu noble: libstdc++-12-doc 12.4.0-2ubuntu1~24.04.1
- ubuntu noble: libstdc++-13-doc 13.2.0-23ubuntu4
- ubuntu noble: libstdc++-13-doc 13.3.0-6ubuntu2~24.04.1
- ubuntu noble: libstdc++-14-doc 14-20240412-0ubuntu1
- ubuntu noble: libstdc++-14-doc 14.2.0-4ubuntu2~24.04.1
- ubuntu questing: libstdc++-11-doc 11.5.0-7ubuntu1
- ubuntu questing: libstdc++-11-doc 11.5.0-7ubuntu1.1
- ubuntu questing: libstdc++-12-doc 12.5.0-6ubuntu1
- ubuntu questing: libstdc++-13-doc 13.4.0-4ubuntu1
- ubuntu questing: libstdc++-14-doc 14.3.0-8ubuntu1
- ubuntu questing: libstdc++-15-doc 15.2.0-4ubuntu4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms