auto ref is on the docket

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Mon Jun 22 15:40:57 PDT 2015


On 6/22/15 3:06 PM, Timon Gehr wrote:
> On 06/22/2015 06:11 AM, Andrei Alexandrescu wrote:
>> Walter and I discussed what auto ref for templates should look like and
>> reached the conclusion that an approach based on lowering would be best.
>> I added a proposed lowering to
>> https://github.com/D-Programming-Language/dmd/pull/4717.
>>
>> Andrei
>
> "@WalterBright auto ref for templates and non-templates do different
> things by necessity. ..."
>
> The proposed lowering also works for template functions.
>
> "... This is not an issue."
>
> Yes it is. Walter is right.

For templates, auto ref generates two copies of the function. Inside, 
which was generated can be interrogated by using is(param == ref). For 
non-templates, only one copy of the function is generated. Using 
is(param == ref) inside should be an error.

The two mechanisms bear many similarities and some differences, too.


Andrei



More information about the Digitalmars-d mailing list