makeArray

Create an array of T with length elements using alloc. The array is either default-initialized, filled with copies of init, or initialized with values fetched from range.

Parameters

T

element type of the array being created

alloc Allocator

the allocator used for getting memory

length size_t

length of the newly created array

init T

element used for filling the array

Return Value

Type: T[]

The newly-created array, or null if either length was 0 or allocation failed.

Throws

The first two overloads throw only if alloc's primitives do. The overloads that involve copy initialization deallocate memory and propagate the exception if the copy operation throws.

Examples

static void test(T)()
{
    T[] a = theAllocator.makeArray!T(2);
    assert(cast(int[])a == [0, 0]);
    a = theAllocator.makeArray!T(3, 42);
    assert(cast(int[])a == [42, 42, 42]);
    import std.range : only;
    a = theAllocator.makeArray!T(only(42, 43, 44));
    assert(cast(int[])a == [42, 43, 44]);
}
test!int();
test!(shared int)();
test!(const int)();
test!(immutable int)();

Meta