I found a code here Printing 1 to 1000 without loop or conditionals
Can someone please explain how compile time recursion works, couldn't find it in google
// compile time recursion
template<int N> void f1()
{
f1<N-1>();
cout << N << '\n';
}
template<> void f1<1>()
{
cout << 1 << '\n';
}
int main()
{
f1<1000>();
}
Thank you!