digitalmars.D.learn - Example for multi level template composition
- Arun (3/6) Oct 09 2022 Does anyone have an example for this?
- user1234 (3/9) Oct 10 2022 Recursive templates can make other templates with themselves. I
- rassoc (4/9) Oct 10 2022 Aren't UFCS chained range calls just that?
- ag0aep6g (16/22) Oct 10 2022 You can just write that down in code:
- surlymoor (3/5) Oct 10 2022 This guy could have read std.meta's documentation or source, but
Stumbled upon this question on HN https://news.ycombinator.com/item?id=33142751#33147401Can 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?
Oct 09 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#33147401Recursive templates can make other templates with themselves. I dont feel to provide an example ATM tho.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?
Oct 10 2022
On 10/10/22 08:30, Arun via Digitalmars-d-learn wrote:Stumbled upon this question on HN https://news.ycombinator.com/item?id=33142751#33147401Aren't UFCS chained range calls just that? range.map!foo.filter!bar.fold!baz; These templates return new template ranges that transform themselves according to their inputs via Design by Introspection. For example, joiner of joiner of joiner would allow you to lazily flatten a multi dim array.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?
Oct 10 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#33147401You 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!" */ ```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?
Oct 10 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#33147401This guy could have read std.meta's documentation or source, but instead makes assumptions and lazes around.
Oct 10 2022