我制作了一个容器模板类,如下所示:
template<typename K, typename V>
class hash_table {
public:
class iterator {
private:
list<V> list_; // Works well
list<V>::iterator it_; // Fails: Syntax-error "iterator"
list<int>::iterator it2_; // Works well
};
//....
}
有人可以告诉我,我在list<V>::iterator it_;
做错了什么吗?为什么这是语法错误?
答案 0 :(得分:1)
@songyuanyao sugested,解决方案是将typename
放在list<V>::iterator
之前,如:
template<typename K, typename V>
class hash_table {
public:
class iterator {
private:
list<V> list_; // Works well
typename list<V>::iterator it_; // No more fails
list<int>::iterator it2_; // Works well
};
//....
}