【发布时间】:2020-05-24 20:22:59
【问题描述】:
我需要一个如下所示的类:
template<typename T, class S, size_t C>
class myClass
{
public:
myClass(); // Ctor
/*
*/
private:
S myData;
}
其中 T 是存储数据的类型,S 是容器类型,C 是它的大小。方法不会依赖于容器类型,但我仍然需要正确初始化 S。例如,让 S 为std::vector,我试过了:
template<typename T, size_t C>
myClass<T, std::vector<T>, C>::myClass()
{
}
但我收到E0040 expected identifier 错误。
【问题讨论】:
-
这能回答你的问题吗? Template class with template container
-
我不认为你可以通过专门处理这样的类型来定义单个成员......你需要一个模板构造函数或者你需要创建一个专业化
myClass. -
你不能部分专门化方法/函数。
-
你会用 C++17 吗?
-
抱歉,我刚刚注意到您用问题标记了我,我已经看到了答案。享受编码。