mirror of
https://github.com/dlang/phobos.git
synced 2025-04-29 14:40:30 +03:00
Consolidate overloads of copy()
This commit is contained in:
parent
ba490f4d7b
commit
439b9a701b
1 changed files with 45 additions and 47 deletions
|
@ -366,8 +366,10 @@ Returns:
|
|||
The unfilled part of target
|
||||
*/
|
||||
TargetRange copy(SourceRange, TargetRange)(SourceRange source, TargetRange target)
|
||||
if (areCopyCompatibleArrays!(SourceRange, TargetRange))
|
||||
if (isInputRange!SourceRange && isOutputRange!(TargetRange, ElementType!SourceRange))
|
||||
{
|
||||
static if (areCopyCompatibleArrays!(SourceRange, TargetRange))
|
||||
{
|
||||
const tlen = target.length;
|
||||
const slen = source.length;
|
||||
assert(tlen >= slen,
|
||||
|
@ -391,14 +393,9 @@ if (areCopyCompatibleArrays!(SourceRange, TargetRange))
|
|||
target[0 .. slen] = source[];
|
||||
return target[slen .. $];
|
||||
}
|
||||
}
|
||||
|
||||
/// ditto
|
||||
TargetRange copy(SourceRange, TargetRange)(SourceRange source, TargetRange target)
|
||||
if (!areCopyCompatibleArrays!(SourceRange, TargetRange) &&
|
||||
isInputRange!SourceRange &&
|
||||
isOutputRange!(TargetRange, ElementType!SourceRange))
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
// Specialize for 2 random access ranges.
|
||||
// Typically 2 random access ranges are faster iterated by common
|
||||
// index than by x.popFront(), y.popFront() pair
|
||||
|
@ -419,6 +416,7 @@ if (!areCopyCompatibleArrays!(SourceRange, TargetRange) &&
|
|||
put(target, element);
|
||||
return target;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue