DMD metaprogramming enhancement

Simen Kjærås simen.kjaras at gmail.com
Fri Apr 26 06:29:04 UTC 2019


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.

--
   Simen


More information about the Digitalmars-d-announce mailing list