isInputRange copied verbatim produces a different result than isInputRange from std.range

arturg var.spool.mail700 at gmail.com
Sun Mar 4 22:02:31 UTC 2018


On Sunday, 4 March 2018 at 21:47:43 UTC, Jonathan M Davis wrote:
> On Sunday, March 04, 2018 21:03:23 arturg via 
> Digitalmars-d-learn wrote:
>>
>> isn't this what DIP 1005 tried to solve?
>
> No. What DIP 1005 was trying to solve was avoiding having to 
> have imports used by your function signature or template 
> constraint on top-level constructs be available to the entire 
> module. It wanted the imports to only kick in when the symbol 
> that needed them was used. So, it would be possible to then 
> import isInputRange as part of a function that needed it in its 
> template constraint without the rest of the module seeing that 
> import, whereas right now, such an import would have to be at 
> the top level and would affect the entire module. DIP 1005 
> didn't do anything to make it so that other modules could see 
> what you imported, and I doubt that any DIP ever would, because 
> if that were possible, it would cause function hijacking, 
> because you could force other modules to import what you wanted 
> instead of what the person who wrote them imported.
>
> - Jonathan M Davis

hm yeah i hoped that dip 1005 would be introspectable so you 
could use it instead of relying on udas.


More information about the Digitalmars-d-learn mailing list