The OpenD Programming Language

moveSome

Calls move(a, b) for each element a in src and the corresponding element b in tgt, in increasing order, stopping when either range has been exhausted.

Tuple!(InputRange1, InputRange2)
moveSome
(
InputRange1
InputRange2
)
(
InputRange1 src
,
InputRange2 tgt
)
if (
isInputRange!InputRange1 &&
isInputRange!InputRange2
&&
is(typeof(move(src.front, tgt.front)))
)

Parameters

src InputRange1

An input range with movable elements.

tgt InputRange2

An input range with elements that elements from src can be moved into.

Return Value

Type: Tuple!(InputRange1, InputRange2)

The leftover portions of the two ranges after one or the other of the ranges have been exhausted.

Examples

int[5] a = [ 1, 2, 3, 4, 5 ];
int[3] b;
assert(moveSome(a[], b[])[0] is a[3 .. $]);
assert(a[0 .. 3] == b);
assert(a == [ 1, 2, 3, 4, 5 ]);

Meta