DMD metaprogramming enhancement
Simen Kjærås
simen.kjaras at gmail.com
Fri Apr 26 06:34:26 UTC 2019
On Friday, 26 April 2019 at 06:29:04 UTC, Simen Kjærås wrote:
> On Thursday, 25 April 2019 at 23:41:32 UTC, Suleyman wrote:
>> Hello everyone,
>>
>> I am happy to announce that in the next DMD release you will
>> be able to more freely enjoy your metaprograming experience
>> now that a long-standing limitation has been lifted.
>>
>> You can now instantiate local and member templates with local
>> symbols.
>>
>> Example:
>> ---
>> struct S
>> {
>> private int _m;
>> void exec(alias fun)()
>> {
>> fun(_m);
>> }
>> }
>>
>> unittest
>> {
>> int localVar;
>>
>> void set(int i)
>> {
>> localVar = i;
>> }
>>
>> auto obj = S(10);
>> obj.exec!set(); // no error or warning
>>
>> assert(localVar == 10);
>> }
>> ---
>>
>> I hope you enjoy!
>
> You have no idea how happy I am to hear this has been fixed! So
> many of my designs have been hamstrung by 5710, and it's been
> around since the dawn of time.
BTW, at least two people have promised money outside BountySource
to have 5710 fixed:
https://forum.dlang.org/post/gjzrklkxfmgjjdforbrs@forum.dlang.org
--
Simen
More information about the Digitalmars-d-announce
mailing list