std.experimental.allocator.gc_allocator
D's built-in garbage-collected 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 const pure nothrow @trusted void[] allocate(size_t bytes);
shared const pure nothrow @trusted bool expand(ref void[] b, size_t delta);
shared const pure nothrow @system bool reallocate(ref void[] b, size_t newSize);
shared const pure nothrow @nogc @trusted Ternary resolveInternalPointer(const void* p, ref void[] result);
shared const pure nothrow @nogc @system bool deallocate(void[] b);
shared const pure nothrow @nogc @safe size_t goodAllocSize(size_t n); -
Standard allocator methods per the semantics defined above. The
deallocate
andreallocate
methods are@system
because they may move memory around, leaving dangling pointers in user code. - static shared const 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 areshared
.
© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/std_experimental_allocator_gc_allocator.html