DIP10005: Dependency-Carrying Declarations is now available for community feedback

Anonymouse via Digitalmars-d digitalmars-d at puremagic.com
Wed Dec 14 09:24:29 PST 2016


On Wednesday, 14 December 2016 at 17:09:44 UTC, ketmar wrote:
> On Wednesday, 14 December 2016 at 17:01:50 UTC, Andrej Mitrovic
>>
>> How about:
>>
>> bool equal(R1, R2) : std.range
>> if (isInputRange!R1 && isInputRange!R2)
>> { ... }
>>
>> It's nice and concise, and you could in theory also allow 
>> multiple imports with a comma
>>
>> bool equal(R1, R2) : std.range, std.traits
>> if (isInputRange!R1 && isInputRange!R2 && isArray!R2)
>> { ... }
>
> breaks possible selective import. if both modules exports some 
> symbol, we will need to selectively import and/or rename it.

The with keyword then?

bool equal(R1, R2)
with (std.range : isInputRange, isOutputRange) && (std.stdio : 
writeln) && (std.algorithm)
if (isInputRange!R1 && isInputRange!R2)
{ ... }

A problem with that is that it reads "bool equal with std.stdio 
if something", suggesting something decides whether or not to 
import std.stdio.


More information about the Digitalmars-d mailing list