C++,模板参数错误

标签 c++ templates

下面是我的模板矩阵,我想通过从用户那里获取值(value)来构建它。 但是当我编译它时。我收到以下错误。为什么会出错?

SO_模板.cpp: 在成员函数中 void Matrix<T>::BuildMatrix(std::vector<T, std::allocator<_CharT> >)': SO_template.cpp:44: error: expected ;'在“它”之前

如果我使用 int 专门化我的类(class),它不会提示为什么?

 template<class T>
  class Matrix
  {
    private:
          vector<T> col;
          int iNumberOfRow;
          int iNumberOfCol;
    public:
     void BuildMatrix(const std::vector<T> stringArray)
     {

         std::vector<T>::iterator it= stringArray.begin();
         cout<<"Build Matrix irow="<<stringArray.size();
         ...
         ...
     }
};

最佳答案

问题是 std::vector<T>::iterator是一个“依赖类型”——整个类型依赖于T .前缀为 typename解决这个问题,所以把这行写成

typename std::vector<T>::iterator it= stringArray.begin();

关于C++,模板参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735970/

相关文章:

c++ - 在 cmake 中设置最低版本的 boost

c++ - 多次使用 strtok_s

c++ - 在排序和旋转的数组中搜索

c++ - 向类中添加函数模板

c++ - 使用 enable_if 禁用模板类的模板构造函数

c++ - 为什么默认参数后允许使用参数包?

c++ - Qt GUI 变得 react 迟钝,发出信号的速度太快

C++ 模板显式实例化

c++ - 如何在 STL 算法中使用模板函数作为比较器 ex : make_heap

c++ - 扩展类模板