首頁  >  文章  >  後端開發  >  可以將字串文字當作非型別模板參數傳遞嗎?

可以將字串文字當作非型別模板參數傳遞嗎?

DDD
DDD原創
2024-11-17 09:04:03154瀏覽

Can You Pass String Literals as Non-Type Template Arguments?

將字符串文字作為非類型模板參數傳遞

問題陳述:

你可以嗎使用接受字串文字的非類型模板參數定義類模板,例如my_class?

解決方案:

雖然不可能直接將字串文字作為非類型模板參數傳遞,但您可以實現透過聲明const char* 參數並向其傳遞帶有static 的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 是一個const char*,它可以指向字串文字或字串變數。變數 teststr 被宣告為帶有字串「Hello world!」的 static const char[]。透過傳遞 teststr 作為模板參數,您可以有效地存取類別模板中的字串文字。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn