Template Metaprogramming
From ja.cppreference.net
テンプレートメタプログラミングは、コンパイル時に新しい型を作成し値を計算するための一連の技術です。再帰的インスタンス化の回数と使用可能な状態変数の数に制限がない場合、C++テンプレートはチューリング完全です。Erwin Unruhは委員会会議で、コンパイラにエラーメッセージで素数を出力させることで、初めてテンプレートメタプログラミングを実証しました。規格は実装が少なくとも1024段階の再帰的インスタンス化をサポートすることを推奨しており、テンプレートインスタンス化における無限再帰は未定義動作です。
|
このセクションは不完全です
理由: テクニック(特殊化、SFINAE、ADL、インデックスシーケンス、畳み込み、constexpr ifなど) |
|
このセクションは不完全です
理由: 用語(traits、typelists、metafunctionsなど) |
|
このセクションは不完全です
理由: ライブラリ Boost.MPL / Boost.Mp11 / Metal / Kvasir.MPL / Boost.Hana / etc (暗黒時代のLokiも含む可能性あり) |
|
このセクションは不完全です
理由: 履歴かもしれません |
外部リンク
| 1. | David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor (2017), C++ Templates - The Complete Guide, 2nd Edition. |
| 2. | Wikibook: テンプレートメタプログラミング. |
| 3. | Wikipedia: テンプレートメタプログラミング. |