首页 > 后端开发 > C++ > 可以将字符串文字作为非类型模板参数传递吗?

可以将字符串文字作为非类型模板参数传递吗?

DDD
发布: 2024-11-17 09:04:03
原创
226 人浏览过

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

将字符串文字作为非类型模板参数传递

问题陈述:

你可以吗使用接受字符串文字的非类型模板参数定义类模板,例如 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 是一个 const char*,它可以指向字符串文字或字符串变量。变量 teststr 被声明为带有字符串“Hello world!”的 static const char[]。通过传递 teststr 作为模板参数,您可以有效地访问类模板中的字符串文字。

以上是可以将字符串文字作为非类型模板参数传递吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板