shrinkArray

fnbool shrinkArray(T, Allocator)(auto ref Allocator alloc, ref T[] array, size_t delta)

Shrinks an array by delta elements.

If array.length < delta, does nothing and returns false. Otherwise, destroys the last array.length - delta elements in the array and then reallocates the array's buffer. If reallocation fails, fills the array with default-initialized data.

Parameters

Telement type of the array being created
allocthe allocator used for getting memory
arraya reference to the array being shrunk
deltanumber of elements to remove (upon success the new length of array is array.length - delta)

Returns

true upon success, false if memory could not be reallocated. In the latter

case, the slice array[$ - delta .. $] is left with default-initialized elements.

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.