template <int n> void hoge() {
hoge<n - 1>();
std::cout << n - 1 << std::endl;
}

template <> void hoge<1>() {
std::cout << 0 << std::endl;
}