GCAllocator

D's built-in garbage-collected allocator.

Members

Static functions

allocate
void[] allocate(size_t bytes)

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.

collect
void collect()
Undocumented in source. Be warned that the author may not have intended to support it.
deallocate
bool deallocate(void[] b)
expand
bool expand(void[] b, size_t delta)
goodAllocSize
size_t goodAllocSize(size_t n)
reallocate
bool reallocate(void[] b, size_t newSize)
resolveInternalPointer
Ternary resolveInternalPointer(void* p, void[] result)

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.

Variables

alignment
enum uint alignment;

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

instance
enum GCAllocator instance;

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

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);
//...

Meta