Enum member std.range.primitives.hasSlicing
Returns true if R offers a slicing operator with integral boundaries
that returns a forward range type.
						
				enum hasSlicing(R)
				 = isForwardRange!R && !(isAutodecodableString!R && !isAggregateType!R) && is(typeof((R r)
{
return r[1..1]
				For finite ranges, the result of opSlice must be of the same type as the
original range type. If the range defines opDollar, then it must support
subtraction.
For infinite ranges, when not using opDollar, the result of
opSlice must be the result of take or takeExactly on the
original range (they both return the same type for infinite ranges). However,
when using opDollar, the result of opSlice must be that of the
original range type.
The following expression must be true for hasSlicing to be true:
isForwardRange!R
&& !(isAutodecodableString!R && !isAggregateType!R)
&& is(typeof((R r) { return r[1 .. 1]Example
import stdAuthors
Andrei Alexandrescu, David Simcha, and Jonathan M Davis. Credit for some of the ideas in building this module goes to Leonardo Maffi.