Phobos: __FILE__ as template default parameter

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Sun Jun 19 03:43:47 PDT 2016


On Sunday, 19 June 2016 at 08:33:40 UTC, Johan Engelen wrote:
> On Sunday, 19 June 2016 at 08:06:09 UTC, Dicebot wrote:
>> This important feature and can't be simply removed. For 
>> example, std.experimental.logger also relies on it.
>
> Do you mean it relies on __FILE__ being a template parameter 
> (instead of a runtime default parameter, like enforce)?

Yes. It is necessary because runtime parameter list is variadic - 
template bloat in such cases is usually eliminated by forwarding 
to another private method immediately turning file/line into 
first runtime argument instead.

>> It needs to be fixed instead.
>>
>> Two immediate workarounds that come to mmy mind:
>>
>> 1. Make __FILE__ relative to import path
>> 2. Always emit new symbol to object file if __FILE__ is 
>> involved
>
> I also thought about 2. It would fix the second (non-Phobos) 
> example.
>
> -Johan




More information about the Digitalmars-d mailing list