Enum member isInfinite
Determines whether R is an infinite range.
enum isInfinite(R)
= R .empty == false;
An infinite range is an input range whose empty
member is defined as
enum which is always false.
Parameters
Name | Description |
---|---|
R | A type. |
Returns
true if R is an infinite range, false otherwise.
Example
static assert(!isInfinite!int);
static struct NotRange
{
enum bool empty = false;
}
static assert(!isInfinite!NotRange);
static struct InfiniteRange
{
void popFront() @nogc nothrow pure @safe
{
}
@property int front() @nogc nothrow pure @safe
{
return 0;
}
enum bool empty = false;
}
static assert(isInfinite!InfiniteRange);
static struct InputRange
{
void popFront() @nogc nothrow pure @safe
{
}
@property int front() @nogc nothrow pure @safe
{
return 0;
}
@property bool empty() const @nogc nothrow pure @safe
{
return false;
}
}
static assert(!isInfinite!InputRange);