recursive function call at compile time
    bearophile 
    bearophileHUGS at lycos.com
       
    Sun Dec 16 09:49:59 PST 2012
    
    
  
Oleg:
> at compile time i have errors
> ./recursion.d(7): Error: index 4294967295 overflow for static 
> array
> ./recursion.d(7): Error: index 4294967294 overflow for static 
> array
> .... etc
It prints a little too many of those...
> call 'recursionAlgo()' where it should not be ( K == 1 )
The first problem to fix in your code is visible here, it's not a 
CTFE problem:
struct MyStruct(uint K) {
     real[K] data;
     auto getSmaller() {
         MyStruct!(K - 1) ret;
     }
}
void main() {
     MyStruct!5 a;
}
When you instantiate MyStruct!5, it tries to define ret, so it 
instantiates MyStruct!4, MyStruct!3, ... and so on. You have to 
put a static if or something else to stop that.
Bye,
bearophile
    
    
More information about the Digitalmars-d-learn
mailing list