Я нашел здесь код Печать от 1 до 1000 без цикла или условных выражений
Может кто-нибудь объяснить, как работает рекурсия времени компиляции, не удалось найти его в 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>();
}
Спасибо!