On Tuesday, 17 July 2012 at 19:27:54 UTC, Jonathan M Davis wrote:

It translates

foreach(e; range)
{}

into something like

foreach(auto __range = range; !__range.empty; __range.popFront())
{
    auto e = __range.front;
}

The compiler knows just enough about ranges to enable foreach, but beyond
that, ranges are entirely a library construct.

The spec' says "If the foreach range properties do not exist, the opApply method will be used instead.", does this mean that range properties take precedence over opApply ?

Reply via email to