mirror of
https://github.com/dlang/phobos.git
synced 2025-04-30 15:10:46 +03:00
Review
This commit is contained in:
parent
369ed6edb6
commit
e048dbeb18
1 changed files with 10 additions and 13 deletions
|
@ -254,7 +254,6 @@ auto castSwitch(choices...)(Object switchObject)
|
||||||
|
|
||||||
if (switchObject !is null)
|
if (switchObject !is null)
|
||||||
{
|
{
|
||||||
|
|
||||||
// Checking for exact matches:
|
// Checking for exact matches:
|
||||||
const classInfo = typeid(switchObject);
|
const classInfo = typeid(switchObject);
|
||||||
foreach (index, choice; choices)
|
foreach (index, choice; choices)
|
||||||
|
@ -517,7 +516,7 @@ auto castSwitch(choices...)(Object switchObject)
|
||||||
|
|
||||||
/** Clamps a value into the given bounds.
|
/** Clamps a value into the given bounds.
|
||||||
|
|
||||||
This functions is equivalent to `max(lower, min(upper,val))`.
|
This function is equivalent to `max(lower, min(upper, val))`.
|
||||||
|
|
||||||
Params:
|
Params:
|
||||||
val = The value to _clamp.
|
val = The value to _clamp.
|
||||||
|
@ -657,8 +656,7 @@ if (isInputRange!R1 && isInputRange!R2)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto a = r1.front, b = r2.front;
|
auto a = r1.front, b = r2.front;
|
||||||
if (a < b) return -1;
|
if (auto result = (b < a) - (a < b)) return result;
|
||||||
if (b < a) return 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -891,8 +889,6 @@ Compares two ranges for equality, as defined by predicate `pred`
|
||||||
*/
|
*/
|
||||||
template equal(alias pred = "a == b")
|
template equal(alias pred = "a == b")
|
||||||
{
|
{
|
||||||
enum hasFixedLength(T) = hasLength!T || isNarrowString!T;
|
|
||||||
|
|
||||||
// use code points when comparing two ranges of UTF code units that aren't
|
// use code points when comparing two ranges of UTF code units that aren't
|
||||||
// the same type. This is for backwards compatibility with autodecode
|
// the same type. This is for backwards compatibility with autodecode
|
||||||
// strings.
|
// strings.
|
||||||
|
@ -921,11 +917,17 @@ template equal(alias pred = "a == b")
|
||||||
for element, according to binary predicate `pred`.
|
for element, according to binary predicate `pred`.
|
||||||
+/
|
+/
|
||||||
bool equal(Range1, Range2)(Range1 r1, Range2 r2)
|
bool equal(Range1, Range2)(Range1 r1, Range2 r2)
|
||||||
if (isInputRange!Range1 && isInputRange!Range2 &&
|
if (useCodePoint!(Range1, Range2) ||
|
||||||
|
isInputRange!Range1 && isInputRange!Range2 &&
|
||||||
!(isInfinite!Range1 && isInfinite!Range2) &&
|
!(isInfinite!Range1 && isInfinite!Range2) &&
|
||||||
is(typeof(binaryFun!pred(r1.front, r2.front))))
|
is(typeof(binaryFun!pred(r1.front, r2.front))))
|
||||||
{
|
{
|
||||||
static if (!useCodePoint!(Range1, Range2))
|
static if (useCodePoint!(Range1, Range2))
|
||||||
|
{
|
||||||
|
import std.utf : byDchar;
|
||||||
|
return equal(r1.byDchar, r2.byDchar);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
// No pred calls necessary.
|
// No pred calls necessary.
|
||||||
static if (isInfinite!Range1 || isInfinite!Range2)
|
static if (isInfinite!Range1 || isInfinite!Range2)
|
||||||
|
@ -981,11 +983,6 @@ template equal(alias pred = "a == b")
|
||||||
return r2.empty;
|
return r2.empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
import std.utf : byDchar;
|
|
||||||
return equal(r1.byDchar, r2.byDchar);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue