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 a local clone.

rt.arrayassign

Implementation of array assignment support routines.
License:
Distributed under the Boost Software License 1.0.
Authors:
Walter Bright, Kenji Hara
void[] _d_arrayassign(TypeInfo ti, void[] from, void[] to);
Keep for backward binary compatibility. This function can be removed in the future.
void[] _d_arrayassign_l(TypeInfo ti, void[] src, void[] dst, void* ptmp);
Does array assignment (not construction) from another lvalue array of the same element type. Handles overlapping copies.

Input ti TypeInfo of the element type. dst Points target memory. Its .length is equal to the element count, not byte length. src Points source memory. Its .length is equal to the element count, not byte length. ptmp Temporary memory for element swapping.

void[] _d_arrayassign_r(TypeInfo ti, void[] src, void[] dst, void* ptmp);
Does array assignment (not construction) from another rvalue array of the same element type.

Input ti TypeInfo of the element type. dst Points target memory. Its .length is equal to the element count, not byte length. src Points source memory. Its .length is equal to the element count, not byte length. It is always allocated on stack and never overlapping with dst. ptmp Temporary memory for element swapping.

void[] _d_arrayctor(TypeInfo ti, void[] from, void[] to);
Does array initialization (not assignment) from another array of the same element type. ti is the element type.
void* _d_arraysetassign(void* p, void* value, int count, TypeInfo ti);
Do assignment to an array. p[0 .. count] = value;
void* _d_arraysetctor(void* p, void* value, int count, TypeInfo ti);
Do construction of an array. ti[count] p = value;