On Monday, 2 November 2015 at 14:16:53 UTC, Nordlöw wrote:
Is there a reason why
isOutputRange(R,E)
takes a second argument `E` but not other range predicates
isInputRange(R)
isForwardRange(R)
...
?
If so, I still think it would very be nice to have a second
argument `E` for all the other `isXRange` traits to simplify,
for instance,
if (isInputRange!R && is(int == ElementType!R))
to simpler
if (isInputRange!(R, int))
or even
if (isInputRange!R && is(isSomeChar!(ElementType!R)))
to simpler
if (isInputRange!(R, isSomeChar))
?
What do think?
I'm planning to add a PR for this and simplify Phobos in all
places where this pattern is used.
I think it's because output ranges can accept more than one type
of value. That said, the `isInputRange!(R,E)` shortcut for
`isInputRange!R && is(int == ElementType!R)` would be nice.