#include using namespace std; template struct Fact{ static int const val= N * Fact::val; }; template <> struct Fact<0>{ static int const val=1; }; int main(){ cout << Fact<5>::val << endl; }