fork download
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. struct id {
  5. using type = T;
  6. };
  7.  
  8.  
  9. template <typename T>
  10. struct force_match : T {};
  11.  
  12. template <typename T>
  13. struct force : force_match<typename T::type> {};
  14.  
  15. template <template <typename...> class T, typename... Args>
  16. struct force_match<T<Args...>> : T<typename force<Args>::type...> {};
  17.  
  18.  
  19. template <int N>
  20. struct int_ : id<int_<N>> {
  21. static constexpr int value = N;
  22. };
  23.  
  24. template <typename A, typename B>
  25. struct plus_match {};
  26.  
  27. template <typename A, typename B>
  28. struct plus : plus_match<typename A::type, typename B::type> {};
  29.  
  30. template <int A, int B>
  31. struct plus_match<int_<A>, int_<B>> : int_<A + B> {};
  32.  
  33.  
  34. template <typename A, typename B>
  35. struct minus_match {};
  36.  
  37. template <typename A, typename B>
  38. struct minus : minus_match<typename A::type, typename B::type> {};
  39.  
  40. template <int A, int B>
  41. struct minus_match<int_<A>, int_<B>> : int_<A - B> {};
  42.  
  43.  
  44. template <typename A, typename B>
  45. struct mul_match {};
  46.  
  47. template <typename A, typename B>
  48. struct mul : mul_match<typename A::type, typename B::type> {};
  49.  
  50. template <int A, int B>
  51. struct mul_match<int_<A>, int_<B>> : int_<A * B> {};
  52.  
  53.  
  54. template <typename N>
  55. struct dec : minus<N, int_<1>> {};
  56.  
  57.  
  58. template <bool B>
  59. struct bool_ : id<bool_<B>> {
  60. static constexpr bool value = B;
  61. };
  62.  
  63.  
  64. using true_ = bool_<true>;
  65. using false_ = bool_<false>;
  66.  
  67.  
  68. template <typename A, typename B>
  69. struct eq_match : false_ {};
  70.  
  71. template <typename A, typename B>
  72. struct eq : eq_match<typename A::type, typename B::type> {};
  73.  
  74. template <typename T>
  75. struct eq_match<T, T> : true_ {};
  76.  
  77.  
  78. template <typename Cond, typename Then, typename Else>
  79. struct if_match {};
  80.  
  81. template <typename Cond, typename Then, typename Else>
  82. struct if_ : if_match<typename Cond::type, Then, Else> {};
  83.  
  84. template <typename Then, typename Else>
  85. struct if_match<true_, Then, Else> : Then::type {};
  86.  
  87. template <typename Then, typename Else>
  88. struct if_match<false_, Then, Else> : Else::type {};
  89.  
  90.  
  91.  
  92. template <typename N>
  93. struct factorial : if_< eq<N, int_<0>>
  94. , int_<1>
  95. , mul<N, factorial<dec<N>>>> {};
  96.  
  97.  
  98. int main() {
  99.  
  100. std::cout << force< factorial<int_<4>> >::type::value << std::endl;
  101.  
  102. std::cout << force< factorial<int_<-3>> >::value << std::endl;
  103.  
  104. return 0;
  105. }
  106.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:20:8: error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= to increase the maximum) instantiating ‘struct id<int_<-226> >’
 struct int_ : id<int_<N>> {
        ^
prog.cpp:20:8:   required from ‘struct int_<-226>’
prog.cpp:41:8:   required from ‘struct minus_match<int_<-225>, int_<1> >’
prog.cpp:38:8:   required from ‘struct minus<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<1> >’
prog.cpp:55:8:   required from ‘struct dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:72:8:   required from ‘struct eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >’
prog.cpp:82:8:   [ skipping 890 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
prog.cpp:48:8:   required from ‘struct mul<int_<-3>, factorial<dec<int_<-3> > > >’
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:82:8:   required from ‘struct if_<eq<int_<-3>, int_<0> >, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:93:8:   required from ‘struct factorial<int_<-3> >’
prog.cpp:13:8:   required from ‘struct force<factorial<int_<-3> > >’
prog.cpp:102:43:   required from here

prog.cpp:20:8: error: invalid use of incomplete type ‘struct id<int_<-226> >’
prog.cpp:4:8: error: declaration of ‘struct id<int_<-226> >’
 struct id {
        ^
prog.cpp: In instantiation of ‘struct eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >’:
prog.cpp:82:8:   required from ‘struct if_<eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:93:8:   required from ‘struct factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:48:8:   required from ‘struct mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:82:8:   required from ‘struct if_<eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:93:8:   [ skipping 885 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
prog.cpp:48:8:   required from ‘struct mul<int_<-3>, factorial<dec<int_<-3> > > >’
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:82:8:   required from ‘struct if_<eq<int_<-3>, int_<0> >, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:93:8:   required from ‘struct factorial<int_<-3> >’
prog.cpp:13:8:   required from ‘struct force<factorial<int_<-3> > >’
prog.cpp:102:43:   required from here
prog.cpp:72:8: error: no type named ‘type’ in ‘struct dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
 struct eq : eq_match<typename A::type, typename B::type> {};
        ^
prog.cpp: In instantiation of ‘struct if_<eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’:
prog.cpp:93:8:   required from ‘struct factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:48:8:   required from ‘struct mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:82:8:   required from ‘struct if_<eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:93:8:   required from ‘struct factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:48:8:   [ skipping 884 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
prog.cpp:48:8:   required from ‘struct mul<int_<-3>, factorial<dec<int_<-3> > > >’
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:82:8:   required from ‘struct if_<eq<int_<-3>, int_<0> >, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:93:8:   required from ‘struct factorial<int_<-3> >’
prog.cpp:13:8:   required from ‘struct force<factorial<int_<-3> > >’
prog.cpp:102:43:   required from here
prog.cpp:82:8: error: no type named ‘type’ in ‘struct eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >’
 struct if_ : if_match<typename Cond::type, Then, Else> {};
        ^
prog.cpp: In instantiation of ‘struct mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’:
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:82:8:   required from ‘struct if_<eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, int_<0> >, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:93:8:   required from ‘struct factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:48:8:   required from ‘struct mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
prog.cpp:82:8:   [ skipping 882 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
prog.cpp:48:8:   required from ‘struct mul<int_<-3>, factorial<dec<int_<-3> > > >’
prog.cpp:88:8:   required from ‘struct if_match<bool_<false>, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:82:8:   required from ‘struct if_<eq<int_<-3>, int_<0> >, int_<1>, mul<int_<-3>, factorial<dec<int_<-3> > > > >’
prog.cpp:93:8:   required from ‘struct factorial<int_<-3> >’
prog.cpp:13:8:   required from ‘struct force<factorial<int_<-3> > >’
prog.cpp:102:43:   required from here
prog.cpp:48:8: error: no type named ‘type’ in ‘struct factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’
 struct mul : mul_match<typename A::type, typename B::type> {};
        ^
prog.cpp: In instantiation of ‘struct if_match<bool_<false>, int_<1>, mul<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >, factorial<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >’:
prog.cpp:82:8:   required from ‘struct if_<eq<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<dec<int_<-3> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
stdout
Standard output is empty