Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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.

# core.stdcpp.allocator

D binding to C++ std::allocator.
License:
Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Authors:
Manu Evans

Source core/stdcpp/allocator.d

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`);

Copyright © 1999-2023 by the D Language Foundation | Page generated by Ddoc on Wed Feb 1 17:26:18 2023