コンパイラによってインスタンス化されたテンプレート コードを C で視覚化する
開発者は、関数テンプレートまたはクラス テンプレートのコンパイラによって生成されたコードを精査して、コンパイラによるコードの解釈をさらに深く掘り下げます。これは、複雑なテンプレートを使用する場合に特に当てはまります。
Clang の AST Pretty-Printing
包括的なソリューションの 1 つは、Clang (https://clang.llvm.org/) を利用することです。 )、最新の機能が豊富な C コンパイラー フロントエンド。 Clang は、インスタンス化されたテンプレート コードを視覚化するための貴重なツールを提供します。
以下のコード スニペットを検討してください。
<code class="cpp">template <class T> T add(T a, T b) { return a + b; }</code>
次の内容を含む test.cpp をコンパイルするときは、
<code class="cpp">template <class T> T add(T a, T b) { return a + b; } void tmp() { add<int>(10, 2); }</code>
次のコマンドは、インスタンス化されたコードを整形して表示します:
$ clang++ -Xclang -ast-print -fsyntax-only test.cpp
出力:
template <class T> T add(T a, T b) { return a + b; } template<> int add<int>(int a, int b) { return a + b; } void tmp() { add<int>(10, 2); }
以上がClang を使用して C テンプレート コードのインスタンス化を視覚化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。