Moritz Warning escribió:
On Sun, 24 May 2009 20:49:53 -0300, Ary Borenszweig wrote:When I compile this code I get "stack overflow" printed in the console. Anyone know why? --- int fact(int X)() { if(X == 0) { return 1; } else { int temp = fact!(X - 1)(); return X * temp; } } const someVar = fact!(0)(); ---Because you generate fact!(-1)(), fact!(-2)() and so on at compile time. You recursive template doesn't terminate.
Thanks. Later in my head I instantiated the template and noticed the problem.
