C++ ファイルを取得してテンプレート展開パスを実行し、展開されたテンプレートのインスタンス化を使用して新しい C++ コードを生成するコンパイラまたはスタンドアロン プリプロセッサはありますか?
テンプレートがまだ新しく実験的だった 90 年代半ばに、このようなツールがあったことを覚えています。プリプロセッサは、ネイティブ テンプレート サポートなしでコンパイラを使用してテンプレート プログラミングを行う方法でした。
これは、コンテキストを理解するためにコードの解析とトークン化が必要になる可能性が高いため、マクロ処理ステップよりもはるかに複雑です。
私の希望は、OpenCL コードを記述するときにそのようなツールを使用することです。 OpenCLは C++ ですが、テンプレートをサポートしていません。整数またはブールのみの引数を持つような単純なものであっても、テンプレートを作成し、ファイルを事前に解析してテンプレートの使用を見つけて呼び出しを展開し、新しい C++ コードを提供するツールを作成できることを願っています。 OpenCL コンパイラは理解できます。
非常に限定されたツールでも役に立つ可能性があります。すべてのテンプレートの癖をサポートする必要はなく、複数のモジュールなどをサポートする必要さえありません。
別の方法:#define
どこにでもあるマクロ.. 醜く、安全ではなく、効率が悪く、汎用性が低くなります。