gpt4 book ai didi

c++ - 在构造函数上指定模板参数

转载 作者:行者123 更新时间:2023-11-28 06:10:31 25 4
gpt4 key购买 nike

这是我的代码:

class test{
public:
template<int B>
test(const char(&a)[B]){
std::cout<<B<<std::endl;
}
};
int main(int argc, char** argv) {


test t("test");
return 0;
}

输出:

5

我正在做一些研究并发现了这段代码。它将计算字符数(精确为 -1)。我想知道指定的 int B 的用途。在模板参数中,如果我有类似的东西,它会起作用吗:

class test{
public:
template<char B>
test(){

}
};
int main(int argc, char** argv) {


test t(); //error, how to make it work?

return 0;
}

我的问题是:

从我的第一个例子来看,它是如何准确计算字符数的?在模板构造函数中指定类型的目的是什么,就像我的示例 2 中的那样,如果我有一个 char 类型,我该如何让它工作? (当我尝试编译时出现错误)

最佳答案

在您的第一个示例中,"test" 可以被认为是 const char s[5] = "test"。从那里可以将模板构造为 const char(&a)[5],但是由于 B 用于模板定义,因此“5”被抓取为 B的值(value)。

你是第二个例子/问题不清楚。

关于c++ - 在构造函数上指定模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31367134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com