我在标题中有以下两行,以便声明包含模板的向量:
template <class t>
std::vector <t> vec;
但是我收到以下错误:
data member 'vec' cannot be a member template
我做错了什么?
编辑:我不知道我的理解是否正确,我正在尝试声明一个包含模板的向量,我知道这是可以完成的,因为可以具有以下内容:
template <class T>
void funct(vector <T> v){
}
该函数采用模板向量作为其参数。我希望做同样的事情,除了在标头中声明向量以允许向量包含任何内容。
The template <>
语句仅在以下情况下使用宣告 a 函数模板 or a 类模板。例如,您可以在声明(和定义)类时使用它:
template <typename T>
class TemplateClass {
/* definition */
};
或者一个函数:
template <typename T>
void templateFunc(T value) {
/* definition */
}
当创建一个instance类的,你不能使用template <>
陈述。相反,您指定一个模板参数,如下所示:
TemplateClass<int> tc;
当调用模板函数时:
int i = 1;
templateFunc(i); // <-- Automatic template deduction to int.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)