我有一个使用unordered_map
容器和自定义模板的类。
template <typename KeyType, typename ValueType>
class List {
}
在该类中,我用unordered_map::const_iterator
定义了一个新的typedef
,如下所示:
typename typedef std::unordered_map<KeyType, ValueType>::const_iterator ListIterator;
注意,我已经创建了将该类型用作功能参数的类型,如下所示:
void Remove(List<KeyType, ValueType>::ListIterator from, List<KeyType, ValueType>::ListIterator to) {}
问题是编译Error C2061 syntax error: identifier 'ListIterator'
时发生错误。为什么会发生该错误,我的typedef有什么问题?
您应更改typename
和typedef
的顺序。即
typedef typename std::unordered_map<KeyType, ValueType>::const_iterator ListIterator;