[phobos] Ranges using runtime interfaces
David Simcha
dsimcha at gmail.com
Fri Aug 20 18:35:23 PDT 2010
Hmm. It's worth considering, but I see at least two problems.
1. Do we have a practical use case for it? I don't generally believe
in adding complexity without clear use cases for said complexity.
2. The base interface is OutputRange!(E). If I change the base
interface to OutputRange!(E...), then OutputRange!(uint, double) won't
be a subtype of OutputRange!(uint). This is self-evidently ridiculous.
I could maybe make OutputRangeObject!(E...) inherit from
OutputRange!(E[0]), OutputRange!(E[1]), ..., OutputRange!(E[$ - 1]), but
other than nasty string mixins D doesn't provide a way to inherit from a
tuple of interfaces.
On 8/20/2010 9:26 PM, Shin Fujishiro wrote:
> David Simcha<dsimcha at gmail.com> wrote:
>
>> In addition to the changes I made last night, I've also made the
>> following changes:
>>
>> 1. Change name to inputRangeObject/InputRangeObject.
>> 2. Add support for output ranges as outputRangeObject/OutputRangeObject.
>> 3. Remove the now ridiculous looking Hungarian notation on the interfaces.
>>
>> http://pastebin.com/U83YNJfJ is where it's at.
>>
>> Any more comments from anyone, or does this look ready to be checked in?
>>
> Could you make OutputRangeObject able to accept multiple element types?
>
> template outputRangeObject(E...) {
> auto outputRangeObject(R)(R range) { ... }
> }
>
>
> Shin
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
>
>
More information about the phobos
mailing list