On 8/11/16 12:28 AM, Jonathan M Davis via Digitalmars-d-learn wrote:
On Wednesday, August 10, 2016 21:00:01 Lodovico Giaretta via Digitalmars-d-
learn wrote:
Wow. Thanks. I didn't know the compiler would try opSlice. I will
file it.
It does that so that you can use foreach with containers without having to
call something on the container. The idea is that the container will
implement opSlice and make it return a range over the container, and foreach
will then use that range to iterate over the container.
I get that. But it shouldn't try opSlice *first* if the item itself is a
range (and it does do this). Many random-access ranges define opSlice,
and most of the time range[] returns this. But in this case, it doesn't.
But it's a no-op for ranges, why waste time calling it?
-Steve