mirror of
https://github.com/dlang/phobos.git
synced 2025-05-04 00:54:05 +03:00
cartesianProduct: default order should be lexicographically sorted.
This commit is contained in:
parent
8221ed4c4b
commit
a8f80e04f2
1 changed files with 5 additions and 5 deletions
|
@ -12764,16 +12764,16 @@ auto cartesianProduct(R1, R2)(R1 range1, R2 range2)
|
|||
else static assert(0, "cartesianProduct of infinite ranges requires "~
|
||||
"forward ranges");
|
||||
}
|
||||
else static if (isInputRange!R2 && isForwardRange!R1 && !isInfinite!R1)
|
||||
{
|
||||
return joiner(map!((ElementType!R2 a) => zip(range1.save, repeat(a)))
|
||||
(range2));
|
||||
}
|
||||
else static if (isInputRange!R1 && isForwardRange!R2 && !isInfinite!R2)
|
||||
{
|
||||
return joiner(map!((ElementType!R1 a) => zip(repeat(a), range2.save))
|
||||
(range1));
|
||||
}
|
||||
else static if (isInputRange!R2 && isForwardRange!R1 && !isInfinite!R1)
|
||||
{
|
||||
return joiner(map!((ElementType!R2 a) => zip(range1.save, repeat(a)))
|
||||
(range2));
|
||||
}
|
||||
else static assert(0, "cartesianProduct involving finite ranges must "~
|
||||
"have at least one finite forward range");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue