問題:
字串文字可以作為類別模板的非型別參數,例如在像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中文網其他相關文章!