我们试图使用模板定义一个类:

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/

10-11 00:43