6.1.5. scalar_allocation_policy::stlallocator

ヘッダファイル
bezel/scalar_allocation_policy/stlallocator.h
フロントエンドのクラステンプレート名
bezel::scalar_allocation_policy::stlallocator
フロントエンドのテンプレートパラメータ数
2

scalar_allocation_policy::stlallocatorは、STLに準拠するアロケータによるスカラー割り当てポリシーの実装である。

フロントエンドの第1テンプレートパラメータには、使用するアロケータの型を与える。例えばstd::allocatorを用いるのであれば、std::allocator<void>などと指定する。デフォルトではstd::allocator<void>が選択される。指定するアロケータのテンプレートパラメータには何を指定してもよい: scalar_allocation_policy::stlallocatorはそのテンプレートパラメータを使用しない。替わりに、typename AL::template rebind<value_type>::otherを実際のアロケータとして用いる。ALはフロントエンドの第1テンプレートパラメータに与えられた型である。value_typescalar_allocation_policy::stlallocator内部で定義されるsizeof(value_type) == Nを満たす型である。Nはバックエンドのテンプレートパラメータに与えられた定数である。

フロントエンドの第2テンプレートパラメータには、アロケータオブジェクトを保持するためのスカラーストレージポリシーを与える。デフォルトではscalar_storage_policy::default_selectedが選択される。

allocateは与えられたアロケータのallocateを、deallocateはアロケータのdeallocateをそれぞれそのまま呼び出す。

moveは、移動元のポリシーオブジェクトの型が同一であれば常に許可される。

scalar_allocation_policy::stlallocatorは、次のpublicなメンバを追加で持つ。

allocator_typeget_allocatorは、明示的に隠蔽しない限り公開派生クラスのpublicメンバとなる。これは、Bezelのコンテナのインタフェースをより標準コンテナに近いものにしたいときに役に立つ。