Example for multi level template composition

ag0aep6g anonymous at example.com
Mon Oct 10 11:47:41 UTC 2022


On Monday, 10 October 2022 at 06:30:05 UTC, Arun wrote:
> Stumbled upon this question on HN 
> https://news.ycombinator.com/item?id=33142751#33147401
>
>> Can I write template A and then apply it to itself to get 
>> template B and then apply that onto template C to get template 
>> D.
>
> Does anyone have an example for this?

You can just write that down in code:

```d
template D() { enum D = "It's me, template D!"; }

template A(alias MyA)
{
     template A(alias MyC)
     {
         alias A = D;
     }
}

template C() {}

alias B = A!A;
alias MaybeD = B!C;
pragma(msg, MaybeD!()); /* prints "It's me, template D!" */
```


More information about the Digitalmars-d-learn mailing list