mirror of
https://github.com/dlang/phobos.git
synced 2025-05-04 09:00:22 +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 "~
|
else static assert(0, "cartesianProduct of infinite ranges requires "~
|
||||||
"forward ranges");
|
"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)
|
else static if (isInputRange!R1 && isForwardRange!R2 && !isInfinite!R2)
|
||||||
{
|
{
|
||||||
return joiner(map!((ElementType!R1 a) => zip(repeat(a), range2.save))
|
return joiner(map!((ElementType!R1 a) => zip(repeat(a), range2.save))
|
||||||
(range1));
|
(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 "~
|
else static assert(0, "cartesianProduct involving finite ranges must "~
|
||||||
"have at least one finite forward range");
|
"have at least one finite forward range");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue