rt.arrayassign

Implementation of array assignment support routines.

License:
Distributed under the Boost Software License 1.0.
Authors:
Walter Bright, Kenji Hara
Source
rt/arrayassign.d
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;

© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/rt_arrayassign.html