Extend the call site default argument expansion mechanism?

Yuxuan Shui yshuiv7 at gmail.com
Thu May 10 14:36:49 UTC 2018


On Thursday, 10 May 2018 at 14:30:49 UTC, Seb wrote:
> On Thursday, 10 May 2018 at 14:15:18 UTC, Yuxuan Shui wrote:
>> So in D I can use default argument like this:
>>
>> int f(int line=__LINE__) {}
>>
>> [...]
>
> Why not define a TLS or global variable like theAllocator?
> Or if you know it at compile-time as an alias?

Because my proposal is better encapsulated. Definitions of 
expanded default arguments are scoped, so in the given example, 
you can have different __ALLOC__ in different scope, where 
different allocators might be needed.

My proposal is basically an alias, but an alias which is 
recognized by compiler as subtitution keywords for default 
arguments (like __LINE__, __FILE__).


More information about the Digitalmars-d mailing list