具有非类型字符串文字的类模板
在 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中文网其他相关文章!