次のコードを見つけて動作しているように見えますが、まったく理解できません。Recursive Struct
のように見えますが、これは見たことがありません。
template<int B, int N>
struct Pow {
enum{ value = B*Pow<B, N-1>::value };
};
template< int B >
struct Pow<B, 0> {
enum{ value = 1 };
};
int quartic_of_three = Pow<3, 4>::value;
これは何ですか?