如何在unordered_map :: const_iterator中使用typedef?

问题描述 投票:0回答:1

我有一个使用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有什么问题?

c++ typedef
1个回答
0
投票

您应更改typenametypedef的顺序。即

typedef typename std::unordered_map<KeyType, ValueType>::const_iterator ListIterator;
© www.soinside.com 2019 - 2024. All rights reserved.