[C++] [ネタ] C++コードのコンパイル時間の長さを競う?
さぁ、盛 り 上 が っ て 参 り ま し た
C++のコンパイルに時間を掛けさせる方法と言えば、やっぱり再帰的テンプレートだよね。昔懐かしのModern C++ Designなんかを読んだ思い出がよみがえってくるのである。
時間がかかる再帰と言えば・・・わかるな?
template<int X, int Y, int Z, int P = X <= Y> struct T; template<int X, int Y, int Z> struct T<X,Y,Z,1> { static const int r = Y; }; template<int X, int Y, int Z> struct T<X,Y,Z,0> { static const int r = T< T<X-1, Y, Z>::r, T<Y-1, Z, X>::r, T<Z-1, X, Y>::r >::r; }; int c = T<200,100,0>::r;
はい、みんなが静かになるまで5分かかりました(校長先生風に)。というか、元ネタ は「パース時間」だったので、早とちりの勘違い。まぁ、これだと定数を大きくすればいくらでも長くできるので、つまらないといえばつまらないのであった。
パース時間を長くするのは難しいなぁ。