问题:
字符串文字可以作为类模板的非类型参数,例如在声明中my_class?
答案:
虽然直接将字符串文字作为非类型模板参数传递是不可能的,但有一个非常接近的解决方案它。
您可以使用 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中文网其他相关文章!