On Tuesday, 21 February 2017 at 14:02:54 UTC, Jacob Carlborg wrote:
[...]
Yes, this works, I would say this is the simplest:

MyStruct s;

foreach (index, name ; FieldNameTuple!MyStruct)
    writefln("%s: %s", name, s.tupleof[index]);

If you want something more close to "send" in Ruby, you need to use a string mixin, like this:

foreach (name ; FieldNameTuple!MyStruct)
    writefln("%s: %s", name, mixin("s." ~ name));

The string mixin example works for methods, opDispatch and similar as well. The tupleof example, the first one, works only for fields.
Exactly what I was looking for, **thank you!**
Both ways of accessing the struct elements are very interesting,
giving an impression what is possible with D.


Is it possible to overwrite "toString" for all structs in one step?

Regards mt.


Reply via email to