2 extern "C" void abort ();
4 template <int a> inline int fact2 ();
6 template <int a> inline int fact ()
8 return a * fact2<a-1> ();
11 template <> inline int fact<1> ()
16 template <int a> inline int fact2 ()
21 template <> inline int fact2<1> ()
28 if (fact<3> () != 6 || fact<1> () != 1
29 || fact<3> () != 6 || fact<1> () != 1 || fact<1+0> () != 1)
31 if (fact2<3> () != 6 || fact2<1> () != 1
32 || fact2<3> () != 6 || fact2<1> () != 1 || fact2<1+0> () != 1)
34 if (fact2<4> () != 24 || fact<4> () != 24)