Travis Boucher wrote:
I've been playing with string mixins, and they are very powerful.

One thing I can't figure out is what exactly can and cannot be evaluated at compile time.

For example:

----
char[] myFunc1() {
    return "int a = 1;";
}

char[] myFunc2() {
    char[] myFunc3() {
        return "int b = 2;";
    }
    return myFunc3();
}

void main() {
    mixin(myFunc1());
    mixin(myFunc2());
}
----

myFunc1() can be used as a string mixin.
myFunc2() can't be.

I think you're using an old version of DMD. It's been working since DMD1.047. Please upgrade to the latest version, you'll find it a lot less frustrating.
The bottom of "function.html" in the spec gives the rules.
Though it says nested functions aren't supported, but they are.

Reply via email to