W3cubDocs

/D

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

© 1999–2017 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/std_experimental_allocator_gc_allocator.html