playground/cpp/tmp/hello.cpp

28 lines
366 B
C++

#include<iostream>
template<int n>
struct Nat {
enum { val = 1 + Nat<n-1>::val };
};
template<>
struct Nat<0> {
enum { val = 0 };
};
/*
* 'class' has variables 'private' by default. 'struct' has it 'public'. More
* convenient here.
*/
int main() {
std::cout << Nat<2>::val << std::endl;
std::cout << Nat<23>::val << std::endl;
}
// Output
/*
2
23
*/