Simplify some C-style code
monkyyy
crazymonkyyy at gmail.com
Wed Dec 25 19:37:38 UTC 2024
On Wednesday, 25 December 2024 at 18:25:57 UTC, sfp wrote:
>
> What is a template map? I'd be interested in seeing this
> pattern and whether it's worth it to try to salvage std.sumtype.
>
```d
import std;
struct Ball(int i){}
struct Box(int i){}
struct CsgDiff(int i){}
alias dimlist(int dim)=AliasSeq!(Ball!dim,Box!dim,CsgDiff!dim);
alias dimedsumtype(int dim)=SumType!(dimlist!dim);
alias genfunction(T)=(T t)=>t.writeln;
void doSomething(int dim)(dimedsumtype!dim st){
st.match!(
staticMap!(genfunction,dimlist!dim)
);
}
unittest{
dimedsumtype!1 foo;
foo.doSomething!1;
}
```
You will need to read the template book to even begin to
understand, I had to work around what seems to me to be a
compiler bug to get it to compile, and the number of people who
can help you drop to like 5
https://github.com/PhilippeSigaud/D-templates-tutorial
More information about the Digitalmars-d-learn
mailing list