首頁 > 後端開發 > C++ > 主體

如何查看C模板的實例化程式碼?

Linda Hamilton
發布: 2024-10-27 15:53:29
原創
148 人瀏覽過

How to View the Instantiated Code of C   Templates?

查看C 模板的實例化程式碼

在C 中,檢查編譯器為函數或類別生成的程式碼可能是有益的模板。例如,考慮以下模板:

<code class="cpp">template <class T> T add(T a, T b) {
    return a + b;
}</code>
登入後複製

當使用特定類型呼叫時,例如add(10, 2),我們可能想要查看編譯器為此特定創建的函數

實現可見性的編譯器選項

實現此目的的一種方法是使用Clang 的-Xclang -ast-print -fsyntax-only 選項。此選項指示編譯器列印實例化範本的抽象語法樹 (AST)。

範例用法

讓我們建立一個名為test.cpp 的測試文件,其中包含以下程式碼:

<code class="cpp">template <class T> T add(T a, T b) {
    return a + b;
}

void tmp() {
    add<int>(10, 2);
}</code>
登入後複製

要查看int專業化的實例化程式碼,請執行以下命令:

$ clang++ -Xclang -ast-print -fsyntax-only test.cpp
登入後複製

Clang 輸出

對於Clang 版本5.0 或更高版本,輸出將如下所示:

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);
}
登入後複製

此輸出顯示原始模板,後面跟著專門的add;編譯器實例化的函數。

以上是如何查看C模板的實例化程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!