On Wednesday, 12 April 2017 at 21:40:48 UTC, bluecat wrote:
What are some features that you have discovered that you would like to share with the community? For me, one thing I found interesting was the ability to define structures dynamically using mixins:

import std.stdio;
import std.format: format;

template MakePoint(string name, string x, string y) {
const char[] MakePoint = "struct %s {int %s; int %s;}".format(name, x, y);
}

mixin(MakePoint!("Point", "x", "y"));

void main() {
    auto pt = new Point;
    pt.x = 1;
    pt.y = 2;
    writefln("point at (%s, %s)", pt.x, pt.y);
}

this one does not need to be a template.
You can build the string using ctfe which is much faster indeed.

Reply via email to