Merge pull request #5147 from wilzbach/static_if_std_algorithm_comparison

[Static if] Replace overload constraints with static if (comparison.d)
merged-on-behalf-of: Sebastian Wilzbach <sebi.wilzbach@gmail.com>
This commit is contained in:
The Dlang Bot 2017-11-20 16:41:02 +01:00 committed by GitHub
commit d15447fb44
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -606,7 +606,9 @@ Returns:
*/ */
int cmp(alias pred = "a < b", R1, R2)(R1 r1, R2 r2) int cmp(alias pred = "a < b", R1, R2)(R1 r1, R2 r2)
if (isInputRange!R1 && isInputRange!R2 && !(isSomeString!R1 && isSomeString!R2)) if (isInputRange!R1 && isInputRange!R2)
{
static if (!(isSomeString!R1 && isSomeString!R2))
{ {
for (;; r1.popFront(), r2.popFront()) for (;; r1.popFront(), r2.popFront())
{ {
@ -617,10 +619,7 @@ if (isInputRange!R1 && isInputRange!R2 && !(isSomeString!R1 && isSomeString!R2))
if (binaryFun!pred(b, a)) return 1; if (binaryFun!pred(b, a)) return 1;
} }
} }
else
/// ditto
int cmp(alias pred = "a < b", R1, R2)(R1 r1, R2 r2)
if (isSomeString!R1 && isSomeString!R2)
{ {
import core.stdc.string : memcmp; import core.stdc.string : memcmp;
import std.utf : decode; import std.utf : decode;
@ -688,6 +687,7 @@ if (isSomeString!R1 && isSomeString!R2)
} }
} }
} }
}
/// ///
@safe unittest @safe unittest