在C++中,我试图为我的模板类获取一个
并且
std::vector ::iterator
。 然而,在编译时,我收到错误:error C2146:语法错误:标识符“iterator”之前缺少';'
, error C4430:缺少类型说明符 - 默认假定为int。注意:C++不支持默认int
。 我还收到了警告:warning C4346:“std :: vector<T> :: iterator”:依赖名称不是类型
。#include <vector>
template<class T> class v1{
typedef std::vector<T>::iterator iterator; // Error here
};
class v2{
typedef std::vector<int>::iterator iterator; // (This works)
};
我甚至尝试过
template<typename T> class v1{
typedef std::vector<T>::iterator iterator;
};
并且
template<typename T = int> class v1{
typedef std::vector<T>::iterator iterator;
};