タグ

!tumblr-techとallocatorに関するtyruのブックマーク (2)

  • 本の虫: アロケーターに最低限必要なもの

    C++0xでは、std::allocator_traitsの導入によって、アロケーターに最低限必要なものが、かなり減った。これにより、アロケーター実装者の負担も減っている。メモ替わりに書いてみる。 以下は、std::allocator_traitsを通してアロケーターを使う場合に、最低限必要なものである。 // 必ずテンプレートパラメーターをひとつ取らなければならない // T型のオブジェクトに対するアロケーター template < typename T > class allocator { public : // 最低限必要なnested type typedef T value_type ; // ストレージの確保用 // n個のT型のオブジェクトを確保できるに足るだけのストレージを返す value_type * allocate( std::size_t n ) ; // ストレ

  • C++ 0x Scoped Allocator Model - Faith and Brave - C++で遊ぼう

    C++0x では、Scoped Allocator Model というネストしたコンテナ(stringのvectorとかlistのmapとか)の メモリ割り当てとして、コンテナとコンテナの各要素のアロケータを指定できるようになります。 以下は、vectorの例: Scoped Allocator Model のために、 std::scoped_allocator_adaptor というクラスが提供されます。 namespace std { template <Allocator OuterA, Allocator InnerA = unspecified allocator type> class scoped_allocator_adaptor; } 使用例: 指定した領域から alloc するような Scoped allocator を作成する class SimpleArena {

  • 1