Thread overview
Template recursion exceeded
Feb 27, 2019
Michelle Long
Feb 27, 2019
Nicholas Wilson
Feb 27, 2019
Michelle Long
February 27, 2019
Basically

void foo(int k = 20)()
{
   static if (k <= 0 || k >= 100) return;
   foo!(k-1)();
}

Error		Error: template instance `foo!-280` recursive expansion		



February 27, 2019
On Wednesday, 27 February 2019 at 05:45:19 UTC, Michelle Long wrote:
> Basically
>
> void foo(int k = 20)()
> {
>    static if (k <= 0 || k >= 100) return;
>    foo!(k-1)();
> }
>
> Error		Error: template instance `foo!-280` recursive expansion		

Yep, that return is a dynamic return, not a static one.

>    static if (k <= 0 || k >= 100) {} else:
>    foo!(k-1)();

will work.
February 27, 2019
On Wednesday, 27 February 2019 at 06:56:59 UTC, Nicholas Wilson wrote:
> On Wednesday, 27 February 2019 at 05:45:19 UTC, Michelle Long wrote:
>> Basically
>>
>> void foo(int k = 20)()
>> {
>>    static if (k <= 0 || k >= 100) return;
>>    foo!(k-1)();
>> }
>>
>> Error		Error: template instance `foo!-280` recursive expansion		
>
> Yep, that return is a dynamic return, not a static one.
>
>>    static if (k <= 0 || k >= 100) {} else:
>>    foo!(k-1)();
>
> will work.

Right, I forgot ;/ At first I wasn't using a static if then threw it in their.