View source code
Display the source code in std/experimental/allocator/package.d from which this
page was generated on github.
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.
Function std.experimental.allocator.disposeMultidimensionalArray
Destroys and then deallocates a multidimensional array, assuming it was created with makeMultidimensionalArray and the same allocator was used.
void disposeMultidimensionalArray(T, Allocator)
(
auto ref Allocator alloc,
auto ref T[] array
);
Parameters
Name | Description |
---|---|
T | element type of an element of the multidimensional array |
alloc | the allocator used for getting memory |
array | the multidimensional array that is to be deallocated |
Example
struct TestAllocator
{
import std .experimental .allocator .common : platformAlignment;
import std .experimental .allocator .mallocator : Mallocator;
alias allocator = Mallocator .instance;
private static struct ByteRange
{
void* ptr;
size_t length;
}
private ByteRange[] _allocations;
enum uint alignment = platformAlignment;
void[] allocate(size_t numBytes)
{
auto ret = allocator .allocate(numBytes);
_allocations ~= ByteRange(ret .ptr, ret .length);
return ret;
}
bool deallocate(void[] bytes)
{
import std .algorithm .mutation : remove;
import std .algorithm .searching : canFind;
bool pred(ByteRange other)
{ return other .ptr == bytes .ptr && other .length == bytes .length; }
assert(_allocations .canFind!pred);
_allocations = _allocations .remove!pred;
return allocator .deallocate(bytes);
}
~this()
{
assert(!_allocations .length);
}
}
TestAllocator allocator;
auto mArray = allocator .makeMultidimensionalArray!int(2, 3, 5, 6, 7, 2);
allocator .disposeMultidimensionalArray(mArray);
Authors
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.