splitter ddoc and constraint improvements.

splitter requires a sliceable range, contradicting
the ddoc. Additionally, one of the overloads
requires a sliceable range, but omits this from
the if-constraint.

This commit mentions the sliceable constraint in
the ddoc and tightens the constraints of the
overload to require slicing.
This commit is contained in:
Peter Alexander 2012-10-14 23:58:53 +01:00
parent 5b82debffb
commit 035eddda46

View file

@ -1898,7 +1898,7 @@ void swapFront(R1, R2)(R1 r1, R2 r2)
// splitter
/**
Splits a range using an element as a separator. This can be used with
any range type, but is most popular with string types.
any sliceable range type, but is most popular with string types.
Two adjacent separators are considered to surround an empty element in
the split range.
@ -2138,10 +2138,11 @@ unittest
/**
Splits a range using another range as a separator. This can be used
with any range type, but is most popular with string types.
with any sliceable range type, but is most popular with string types.
*/
auto splitter(Range, Separator)(Range r, Separator s)
if (is(typeof(Range.init.front == Separator.init.front) : bool))
if (is(typeof(Range.init.front == Separator.init.front) : bool)
&& (hasSlicing!Range || isNarrowString!Range))
{
static struct Result
{