On Friday, 26 June 2015 at 18:37:51 UTC, Jack Stouffer wrote:
I have been learning D over the past three weeks and I came to
the chapter in "Programming in D" on Ranges. And I am a little
confused on the choice to make Ranges based on the methods you
have in the struct, but not use a interface. With all of the
isInputRange!R you have to write everywhere, it just seems like
it would have made a lot more sense and made everyone's jobs
easier if the different types of Ranges where just interfaces
that you could inherit from.
The only reason I can think of to not do it this way is the
weird distinction between structs and classes in D.
They're essentially compile-time interfaces.
I would prefer having a real name/binding implementation for
this, like contract.