On Tuesday, 30 May 2023 at 15:43:12 UTC, Steven Schveighoffer
wrote:
On 5/30/23 4:46 AM, John Xu wrote:
How to put above enum as a function parameter? Following code
wouldn't work:
string getTMember(T t, enum string memberName) {
return __traits(getMember, t, memberName);
}
compile time parameters come before runtime parameters:
```d
string getTMember(string memberName)(T t) {
return __traits(getMember, t, memberName);
}
// used like
auto v = getTMember!"name"(t);
```
-Steve
When render vibe.d diet template,
string[] allMembers = __traits(allMembers, t);
res.render!("index.dt", t, allMembers)
if I don't want write memberName one by one in diet template:
table
- foreach(memberName; allMembers)
tr
td #{memberName}
td #{getTMember!memberName(t)}
Problem: memberName is not known at compile time.