stdx.allocator.gc_allocator

  • Declaration

    struct GCAllocator;

    D's built-in garbage-collected allocator.

    Examples

    1. auto buffer = GCAllocator.instance.allocate(1024 * 1024 * 4); // deallocate upon scope's end (alternatively: leave it to collection) scope(exit) GCAllocator.instance.deallocate(buffer); //...

    • Declaration

      enum uint alignment;

      The alignment is a static constant equal to , which ensures proper alignment for any D data type.

    • Declaration

      shared pure nothrow @trusted void[] allocate(size_t bytes);
      shared @system bool expand(ref void[] b, size_t delta);
      shared pure nothrow @system bool reallocate(ref void[] b, size_t newSize);
      shared pure nothrow Ternary resolveInternalPointer(const void* p, ref void[] result);
      shared pure nothrow @system bool deallocate(void[] b);
      shared size_t goodAllocSize(size_t n);

      Standard allocator methods per the semantics defined above. The and methods are because they may move memory around, leaving dangling pointers in user code.

    • Declaration

      static shared GCAllocator instance;

      Returns the global instance of this allocator type. The garbage collected allocator is thread-safe, therefore all of its methods and instance itself are .