Anyone know why this CTFE isn't working?
    Rory McGuire 
    rmcguire at neonova.co.za
       
    Fri Jul 16 03:12:38 PDT 2010
    
    
  
On Fri, 16 Jul 2010 11:58:57 +0200, Lars T. Kyllingstad  
<public at kyllingen.nospamnet> wrote:
> On Fri, 16 Jul 2010 11:46:48 +0200, Rory McGuire wrote:
>
>> import std.stdio;
>>
>> struct State {
>>   string s; string getString() { return s; } static State opCall(string
>>   s) {
>>   State ret;
>>   ret.s = s;
>>   return ret;
>>   }
>> }
>>
>> void main() {
>>   auto s = State("adf");
>>   pragma(msg, s.getString());
>> }
>>
>> dmd Output: (line 14 is the pragma statement)
>>
>> struct.d(14): Error: variable s cannot be read at compile time
>> struct.d(14): Error: cannot evaluate s.getString() at compile time
>> s.getString()
>
> It's not working because s isn't a compile-time quantity.  Try:
>
>   enum s = State("adf");
>
> -Lars
Awesome thanks, worked.
So is the difference that "auto s" is a Struct which can change whereas  
"enum s" is a constant?
If it is a constant its just "s" that is constant right?
Thanks Lars
-Rory
    
    
More information about the Digitalmars-d-learn
mailing list