›コードコンパイル時FizzBuzz【とても地球にやさしい】コンパイル時計算FizzBuzz以下の様な実行コードをコンパイル時に生成します。printf(string);}プログラム実行時には既に計算された結果を出力するだけなので、超高速で動作します。ゼロオーバーヘッドFizzBuzz思っていたよりもコンパクトに書けました。C++14に感謝です。世界最速のFizzBuzzになると思います。./a.out12Fizz4...(以下省略)地球にやさしいFizzBuzzですね。技術的には再帰テンプレートで可変長テンプレート引数を構築し、再帰完了時に構築されたパラーメータパックを配列要素として展開しているだけの単純なロジックです。特殊化を用いて行っています。3:FizzBuzz)のアイディアが応用されています。-3:FizzBuzz)というグループ化を行っています。グループ化された数値によって特殊化の対象が切り替わっている点が重要です。A...>が機能し、文字列Fizzが追加されます。-2の場合はBuzzが追加されます。A...>が機能するので再度グループ判定が行われます。これが永遠と繰り返されるわけです。A...>を機能させています。これがBuzzFizzではなくきちんとFizzBuzzとして追加されます。今回の再帰テンプレートは数値100から0までの逆向きにループするイメージなので、これでよいのです(今回のパラメータパックはある種のスタック的な役割を担っています)。ここでFizzが追加されると再度グループ判定に戻ります。if文やgoto文をテンプレートの世界で実現しているみたいで面白いですね。