STL コンテナーで TCMalloc を使用したいので、TCMalloc で構築されたアロケーターが必要です (TBB malloc での tbb_allocator など)。TCMalloc のドキュメントが見つかりません(ドキュメントと呼ばれる場合)。そこで、ヘッダー ファイルの調査を開始し、 というクラスを見つけましたSTL_Allocator
。しかし、何かがはっきりしません。stl_allocator.h からの引用:
// Generic allocator class for STL objects
// that uses a given type-less allocator Alloc, which must provide:
// static void* Alloc::Allocate(size_t size);
// static void Alloc::Free(void* ptr, size_t size);
//
// STL_Allocator<T, MyAlloc> provides the same thread-safety
// guarantees as MyAlloc.
//
// Usage example:
// set<T, less<T>, STL_Allocator<T, MyAlloc> > my_set;
// CAVEAT: Parts of the code below are probably specific
// to the STL version(s) we are using.
// The code is simply lifted from what std::allocator<> provides.
STL_Allocator テンプレート クラスの定義は次のとおりです。
template <typename T, class Alloc>
class STL_Allocator {
//...
}
Alloc
その議論が何であるかはわかりません。一部のメモリ割り当て関数のラッパー クラスを作成する必要がありますか? TCMallocを使った人はいますか?