本当は怖いHPC

HPC屋の趣味&実益ブログ

[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分かかりました(校長先生風に)。というか、元ネタ は「パース時間」だったので、早とちりの勘違い。まぁ、これだと定数を大きくすればいくらでも長くできるので、つまらないといえばつまらないのであった。

パース時間を長くするのは難しいなぁ。

【広告】