isInputRange as a __traits ?
user1234
user1234 at 12.ie
Sat Oct 7 10:39:09 UTC 2017
On Saturday, 7 October 2017 at 10:36:21 UTC, drug wrote:
> 07.10.2017 13:31, user1234 пишет:
>> Since the compiler has the ability to detect input ranges in
>> the foreach aggregate that are aggregates implementing the
>> right primitives, why don't you set the widely used
>> std.range.isInputRange as a __trait, e.g
>> __traits(isInputRange, Stuff) ?
>
> IIRC the reason is if something could be done in library it
> should be done in library. Just to avoid making compiler more
> complex than it's necessary.
The point is that it's **already** in the compiler and that it
could save hundreds of template instantiation.
> As for me isInputRange!Stuff is better than
> __traits(isInputRange, Stuff).
Yeah of course, for code cosmetic it could be wrapped in an
templatized enum
enum isInputRange(T) = __traits(isInputRangeInternal, T);
More information about the Digitalmars-d
mailing list