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 local clone.

std.experimental.allocator.gc_allocator

struct GCAllocator;
D's built-in garbage-collected allocator.
Examples:
auto buffer = GCAllocator.instance.allocate(1024 * 1024 * 4);
// deallocate upon scope's end (alternatively: leave it to collection)
scope(exit) GCAllocator.instance.deallocate(buffer);
//...
enum uint alignment;
The alignment is a static constant equal to platformAlignment, which ensures proper alignment for any D data type.
shared @trusted void[] allocate(size_t bytes);
shared @trusted bool expand(ref void[] b, size_t delta);
shared @system bool reallocate(ref void[] b, size_t newSize);
shared void[] resolveInternalPointer(void* p);
shared @system bool deallocate(void[] b);
Standard allocator methods per the semantics defined above. The deallocate and reallocate methods are @system because they may move memory around, leaving dangling pointers in user code.
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 shared.