我创建了一个容器模板类,如下所示:
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_;做错了什么?为什么这应该是一个语法错误?
发布于 2016-06-29 19:07:13
正如@songyuanyao建议的那样,解决方案是将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
};
//....
}https://stackoverflow.com/questions/38097469
复制相似问题