一連の"アヒル"ネタがそこそこウケております。
C++はリフレクションを持ち合わせてないために動的なごにょごにょには弱いのですが、
それを補って余りある(いやぢつはカツカツですが^^;)静的ごにょごにょが売りのひとつ。
template引数が"型でなくてもいい"なんてのもそのひとつでしょかしら。
↓こんなのGenerics@.Netには逆立ちしても無理っしょ♪
#include <iostream>
// コンパイル時の再帰によって
// 1+2+...+N を求める
template<size_t N>
struct sigma {
enum { value = sigma<N-1>::value + N }; // ∑(N) = ∑(N-1) + N
};
template<>
struct sigma<0> {
enum { value = 0 }; // ∑(0) = 0
};
int main() {
std::cout << sigma<400>::value << std::endl;
}