我们试图使用模板定义一个类:
template<typename _VType, size_t _Len>
class Obc<_VType,_Len> {
private:
size_t len = _len;
public:
Obc();
Obc(_VType *values);
...
};
并且,我们希望能够像这样使用它:
Obc<_DType, 2> m = new Obc();
但是,编译时“矩阵”不是类模板。
我们尝试通过搜索“不是类模板”找到的sols,例如'X is not a template' error,但还没有运气
有什么想法吗?
最佳答案
不要重复模板参数:
template<typename _VType, size_t _Len>
class Obc {
...
};
并假定
_DType
是现有类型,请使用带有模板参数且不使用Java语法的模板类,例如:Obc<_DType, 2> m;
Obc<_DType, 2> mat{values}; // assuming _DType *values point to something
auto othermat = mat;
Online demo
关于c++ - 定义模板类但获取 'is not a class template',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46350477/