fork download
  1. #include <iostream>
  2. #include <type_traits>
  3.  
  4. template<unsigned n, unsigned product = 1>
  5. struct Factorial:
  6. std::conditional_t< n == 1, std::integral_constant<unsigned, product>,
  7. Factorial<n - 1, n * product>>
  8. {};
  9.  
  10. int main() {
  11. std::cout << Factorial<10>::value << "\n";
  12. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
3628800