On Tuesday, 30 May 2023 at 01:33:54 UTC, H. S. Teoh wrote:
On Tue, May 30, 2023 at 01:24:46AM +0000, John Xu via
Digitalmars-d-learn wrote:
On Monday, 29 May 2023 at 11:21:11 UTC, Adam D Ruppe wrote:
> On Monday, 29 May 2023 at 09:35:11 UTC, John Xu wrote:
> > Error: variable `column` cannot be read at compile time
>
> you should generally getMember on a variable
>
> T t;
> __traits(getMember, t, "name")
>
> like that, that's as if you wrote t.name
It seems I can't use variable as member name:
struct T {int a; string name;}
T t;
string s = "name";
writeln(__traits(getMember, t, s));
Above code fails to compile. Any help?
Short answer:
`s` must be known at compile-time. Or more precisely, known at
the time of template expansion. In this case, use `enum`:
enum s = "name";
Long answer:
https://wiki.dlang.org/Compile-time_vs._compile-time
T
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);
}
My database table is very wide, with many columns. Above ddbc
allows a struct
to map db returned data. Then if I want a member's value to show
in vibe.d template,
how do I use a function to get it?