テンプレートメタプログラミング
From cppreference.com
テンプレートメタプログラミングは、コンパイル時に新しい型を作成し、値を計算するための一連のテクニックです。再帰的なインスタンス化の量と許容される状態変数の数に制限がない場合、C++ テンプレートはチューリング完全です。Erwin Unruh は、委員会会議で、コンパイラにエラーメッセージで素数を表示させることで、テンプレートメタプログラミングを初めて実証しました。標準では、実装が少なくとも1024レベルの再帰的なインスタンス化をサポートすることを推奨しており、テンプレートインスタンス化における無限再帰は未定義の動作です。
| このセクションは未完成です 理由: テクニック (特殊化、SFINAE、ADL、インデックスシーケンス、フォールド、constexpr if など) |
| このセクションは未完成です 理由: 用語 (traits、typelists、メタ関数 など) |
| このセクションは未完成です 理由: ライブラリ Boost.MPL / Boost.Mp11 / Metal / Kvasir.MPL / Boost.Hana / など (暗黒時代からの Loki でさえ) |
| このセクションは未完成です 理由: おそらく歴史 |
[編集] 外部リンク
| 1. | David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor (2017), C++ Templates - The Complete Guide, 2nd Edition. |
| 2. | Wikibook: Template Meta-Programming. |
| 3. | Wikipedia: Template Meta-Programming. |