String Mixins & Compile Time Evaluation
Travis Boucher
boucher.travis at gmail.com
Mon Nov 16 20:25:02 PST 2009
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
More information about the Digitalmars-d-learn
mailing list