How do you enumerate the names and types inside a struct or class at compile time in D?
问题 How do you enumerate the names and types inside a struct or class at compile time? i.e. to do the following: struct Foo { int x; int y; } string serialise!(A)(A a) { ...magic... } auto f = Foo(1,2); serialise(f); -> "x:1, y:2" Thanks, Chris. 回答1: Like this: foreach (index, field; myStruct.tupleof) { // field.stringof is "field", slice is to cut off "myStruct." pragma(msg, "Name: " ~ myStruct.tupleof[index].stringof[9..$]); pragma(msg, "Type: " ~ typeof(field).stringof); } Practical example: