gpt4 book ai didi

c++ - 模板类的专门成员 - 不匹配 - 数组

转载 作者:行者123 更新时间:2023-11-30 04:31:18 27 4
gpt4 key购买 nike

我有一个实现函数的模板类:

template<typename T>
class Matrix
{
...
void setItems(const T *tab)
{
//writing content from tab to Matrix internal data
}
...
};

一切都很好,直到我想为 char* 创建专门的函数,我的类必须为字符串分配内存等等。我想使用:

template<> void Matrix<char*>::setItems(const char** tab)
{
...

问题是,这不会构建:

template-id 'setItems<>' for 'void Matrix<char*>::setItems(const char**)' does not match any template declaration

直到现在,我对特殊功能没有任何问题。我错过了什么?

附加信息:
我必须使用 char*

最佳答案

如果 T 是一个 char *,那么 const T * 就是一个 char *const *。

所以你的成员函数应该是:

template<> void Matrix<char*>::setItems(char*const* tab)
{
...
}

常量放在类型后面

void setItems(T const* tab)

这使得您的情况下的扩展类型更加明显。

关于c++ - 模板类的专门成员 - 不匹配 - 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261735/

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