template<int x, int y, int z, bool b> struct tarai_ {
enum { x_ = tarai_<x-1, y, z, x <= y>::v,
y_ = tarai_<y-1, z, x, x <= y>::v,
z_ = tarai_<z-1, x, y, x <= z>::v,
v = tarai_<x_, y_, z_, x_ <= y_>::v };
};
template <int x, int y, int z> struct tarai_<x, y, z, true> {
enum { v = y };
};
template <int x, int y, int z> struct tarai {
enum { v = tarai_<x, y, z, x <= y>::v };
};
const int v = tarai<12, 6, 0>::v;を GCC-4.1.0 でコンパイルしたらエラーがどばーと出て、エラーログが146万行(129MB)とかになったので止めました。
要は失敗。