Returns true if R is a pseudo input range with ref return.
An input range must
define the primitives empty, popFront, and front. The
following code should compile for any input range.
Rr; // can define a range objectif (r.empty) {} // can test for emptyr.popFront(); // can invoke popFront()autoh = r.front; // can get the front of the range of non-void type
The last line fails if the underlying type is non-copyable. It is still possible
to define a pseudo input range that works with non-copyable types by having r.front
return a reference, but isInputRange will return false for it.
Returns true if R is a pseudo input range with ref return.
An input range must define the primitives empty, popFront, and front. The following code should compile for any input range.
The last line fails if the underlying type is non-copyable. It is still possible to define a pseudo input range that works with non-copyable types by having r.front return a reference, but isInputRange will return false for it.