依赖名称不是类型[关于模板类中的迭代器]

转自:http://www.jb51.cc/article/p-sbmgbnib-dd.html

今天在封装STL时候遇到了这么一个问题

  1. template<classT>
  2. classMyList
  3. {
  4. public:
  5. typedefstd::list<T>::iteratoriterator;
  6. };

当我想这样封装迭代器的时候,编译器告诉我:依赖名称不是类型

百度。得答案:

?

    typedeftypenamestd::list<T>::iteratoriterator;
  1. 这样写即可。typename关键字会将后面的内容认为是一个类型。

    但是其实还是没完全搞明白,待搞明白了来续写个详细原因。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...