具有非類型字串文字的類別模板
在C 中,您可能會遇到需要聲明具有非類型參數的類模板,例如字串文字。此查詢探討了這種方法的可行性並提供了解決方案。
非類型模板參數基本原理
您可能希望直接使用字串文字作為非類型模板出於方便或可讀性目的的參數。然而,這在 C 中不直接支持。
可行的解決方法
雖然直接傳遞字串文字是不可能的,但解決方法涉及使用const char* non -type 模板參數並向其傳遞具有靜態連結的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(); }
說明
結論
此解決方法允許您在類別模板中有效地使用字串文字作為非類型參數。當直接字串文字輸入不可行時,它提供了替代解決方案。
以上是字串文字可以用作 C 中的非類型模板參數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!