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.

Reply via email to