Когда я читал pool_allocator в STL, я обнаружил, что многие функции класса __pool_alloc_base реализованы в gcc / libstdc ++ - v3 / src / c ++ 98 / pool_allocator. cc, почему это разработано? Почему бы не поместить реализацию этих функций в pool_allocator.h?
pool_allocator.h
class __pool_alloc_base {
protected:
...
_GLIBCXX_CONST _Obj *volatile *_M_get_free_list(size_t __bytes) throw();
__mutex & _M_get_mutex() throw();
// Returns an object of size __n, and optionally adds to size __n
// free list.
void *_M_refill(size_t __n);
// Allocates a chunk for nobjs of size size. nobjs may be reduced
// if it is inconvenient to allocate the requested number.
char *_M_allocate_chunk(size_t __n, int &__nobjs);
};