This keeps popping up in my posts. Here's an example of printing out fields of a struct with its names:
import std.stdio; void main() { struct ASIOChannelInfo { int channel; int isInput; int isActive; int channelGroup; int type; string name; } auto info = ASIOChannelInfo(1, 1, 1, 16, 32, "Analog OUT"); auto fields = __traits(allMembers, typeof(info)); auto values = info.tupleof; foreach (index, value; values) { writef("\n%-15s %s", fields[index], value); } } Prints: channel 1 isInput 1 isActive 1 channelGroup 16 type 32 name Analog OUT I think we could a function in Phobos that does this with a single call. Maybe it could also determine the longest field name and calculate the width specifier for the formatted output so it prints out the columns nicely. It should probably also avoid printing functions. Anyone interested in this type of function? I could give it a shot and implement it. Btw, is there a lockstep implementation that works with tuples?