Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.


D binding to C++ std::allocator.
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Manu Evans
struct allocator(T);
Allocators are classes that define memory models to be used by some parts of the C++ Standard Library, and most specifically, by STL containers.
this(U)(ref allocator!U);
alias size_type = size_t;
alias difference_type = ptrdiff_t;
alias pointer = T*;
alias value_type = T;
enum auto propagate_on_container_move_assignment;
enum auto is_always_equal;
template rebind(U)
@nogc T* allocate(size_t count);
@nogc void deallocate(T* ptr, size_t count);
enum size_t max_size;
struct allocator_traits(Alloc);
alias allocator_type = Alloc;
alias value_type = allocator_type.value_type;
alias size_type = allocator_type.size_type;
alias difference_type = allocator_type.difference_type;
alias pointer = allocator_type.pointer;
enum auto propagate_on_container_copy_assignment;
enum auto propagate_on_container_move_assignment;
enum auto propagate_on_container_swap;
enum auto is_always_equal;
template rebind_alloc(U)
template rebind_traits(U)
size_type max_size()(auto ref allocator_type a);
allocator_type select_on_container_copy_construction()(auto ref allocator_type a);