View source code
Display the source code in rt/lifetime.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 rt.lifetime._d_arraysetlengthT

Resize a dynamic array by setting the .length property

extern(C) void[] _d_arraysetlengthT (
  const(TypeInfo) ti,
  ulong newlength,
  void[]* p
);

Newly created elements are initialized to their default value.

Has two variants: - _d_arraysetlengthT for arrays with elements that initialize to 0 - _d_arraysetlengthiT for non-zero initializers retrieved from TypeInfo

void main()
{
    int[] a = [1, 2];
    a.length = 3; // gets lowered to `_d_arraysetlengthT(typeid(int[]), 3, &a)`
}

Parameters

NameDescription
ti TypeInfo of array
newlength new value for the array's .length
p pointer to array to update the .length of. While it's cast to void[], its .length is still treated as element length.

Returns

*p after being updated

Authors

Walter Bright, Sean Kelly, Steven Schveighoffer

License

Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)