Don wrote:
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.
Yeah, I am running 1.020 with gdc (freebsd default for gdc package). I
found a few work arounds, just trying to see what can be done.
For now I'll take it as a work in progress and once I start doing
anything real with it I'll upgrade to the latest version of dmd.
Thanks,
Travis Boucher