dsimcha wrote:

Ranges are just pretty much an implicit compile-time interface.  As Ary put it,
compile time duck typing is a pretty accurate description.  Basically, a range
doesn't have to *be* a specific *type*, it just has to support certain specific
*operations*, namely front, popFront, and empty.  As long as it *has* these
operations, and they compile and return what they're supposed to 
(ElementType!(T)
for front(), void for popFront() and bool for empty), it doesn't matter what 
type
it *is*.

What I don't get is how this (definition) may work on tree based structures. To me it seems that ranges work fine on "linear" data types (whatever) lists, but well, as said I don't get it. :(

Reply via email to