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

字串文字可以作為非類型模板參數傳遞嗎?

Barbara Streisand
發布: 2024-11-20 01:27:03
原創
830 人瀏覽過

Can String Literals be Passed as Non-Type Template Arguments?

將字串文字傳遞給非類型類別模板參數

問題:

字串文字可以作為類別模板的非型別參數,例如在像my_class 這樣的宣告中?

答案:

直接將字串文字作為非-type 模板參數是不可能的,有一個非常接近它的解決方案。

您可以利用 const char* 類型的非型別模板參數,並向其傳遞具有靜態連結的 const char[] 變數。這種方法與直接傳遞字串文字有相似之處。

這是一個可編譯的範例:

#include <iostream>

template<const char *str>
struct cts {
    void p() { std::cout << str; }
};

static const char teststr[] = "Hello world!";

int main() {
    cts<teststr> o;
    o.p();
}
登入後複製

上面的程式碼聲明了一個帶有非類型模板參數 str 的類別模板 cts,該參數採用常數字元指標。使用靜態連結定義的變數 teststr 保存字串文字並傳遞給模板實例化。

此方法是直接將字串文字作為非類型模板參數傳遞的可行替代方法。

以上是字串文字可以作為非類型模板參數傳遞嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板