CPlusPlusThings/learn_class/modern_cpp_30/compilercompute/factorial.cpp

20 lines
365 B
C++

//
// Created by light on 19-12-28.
//
#include <iostream>
using namespace std;
template <int n> struct factorial {
static_assert(n >= 0, "Arg must be non-negative");
static const int value = n * factorial<n - 1>::value;
};
template <> struct factorial<0> { static const int value = 1; };
int main() {
printf("%d\n", factorial<10>::value);
return 0;
}