Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Donate
- Resources
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - 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.

# std.experimental.allocator.building_blocks.null_allocator

struct `NullAllocator`;
  `NullAllocator` is an emphatically empty implementation of the allocator interface. Although it has no direct use, it is useful as a "terminator" in composite allocators.
  enum uint `alignment`;
    NullAllocator advertises a relatively large alignment equal to 64 KB. This is because NullAllocator never actually needs to honor this `alignment` and because composite allocators using NullAllocator shouldn't be unnecessarily constrained.
  shared void[] `allocate`(size_t);
    Always returns `null`.
  shared void[] `alignedAllocate`(size_t, uint);
    Always returns `null`.
  shared void[] `allocateAll`();
    Always returns `null`.
  shared pure nothrow @nogc @safe bool `expand`(ref void[] `b`, size_t `s`);
  shared pure nothrow @nogc bool `reallocate`(ref void[] `b`, size_t);
  shared pure nothrow @nogc bool `alignedReallocate`(ref void[] `b`, size_t, uint);
    These methods return `false`.

    Precondition `b` is `null`. This is because there is no other possible legitimate input.

  shared const pure nothrow @nogc @safe Ternary `owns`(const void[]);
    Returns Ternary.no.
  shared const pure nothrow @nogc @safe Ternary `resolveInternalPointer`(const void*, ref void[]);
    Returns Ternary.no.
  shared pure nothrow @nogc bool `deallocate`(void[] `b`);
    No-op.

    Precondition `b` is `null`

  shared pure nothrow @nogc @safe bool `deallocateAll`();
    No-op.
  shared const pure nothrow @nogc @safe Ternary `empty`();
    Returns Ternary.yes.
  static shared NullAllocator `instance`;
    Returns the shared global `instance` of the NullAllocator.

Copyright © 1999-2018 by the D Language Foundation | Page generated by Ddoc on Tue Jan 2 20:55:10 2018