bezel/scalar_allocation_policy/stlallocator.hbezel::scalar_allocation_policy::stlallocator
scalar_allocation_policy::stlallocatorは、STLに準拠するアロケータによるスカラー割り当てポリシーの実装である。
フロントエンドの第1テンプレートパラメータには、使用するアロケータの型を与える。例えばstd::allocatorを用いるのであれば、などと指定する。デフォルトではstd::allocator<void>が選択される。指定するアロケータのテンプレートパラメータには何を指定してもよい: std::allocator<void>scalar_allocation_policy::stlallocatorはそのテンプレートパラメータを使用しない。替わりに、typename を実際のアロケータとして用いる。AL::template rebind<value_type>::otherALはフロントエンドの第1テンプレートパラメータに与えられた型である。value_typeはscalar_allocation_policy::stlallocator内部で定義されるsizeof(value_type) == を満たす型である。NNはバックエンドのテンプレートパラメータに与えられた定数である。
フロントエンドの第2テンプレートパラメータには、アロケータオブジェクトを保持するためのスカラーストレージポリシーを与える。デフォルトではscalar_storage_policy::default_selectedが選択される。
allocateは与えられたアロケータのallocateを、deallocateはアロケータのdeallocateをそれぞれそのまま呼び出す。
moveは、移動元のポリシーオブジェクトの型が同一であれば常に許可される。
scalar_allocation_policy::stlallocatorは、次のpublicなメンバを追加で持つ。
allocator_type
型initializerの別名として定義される。
allocator_type get_allocator() const
メンバ関数get_initializerを呼び出す。
allocator_typeとget_allocatorは、明示的に隠蔽しない限り公開派生クラスのpublicメンバとなる。これは、Bezelのコンテナのインタフェースをより標準コンテナに近いものにしたいときに役に立つ。