转自:http://blog.csdn.net/xocoder/article/details/7908143
今天在封装STL时候遇到了这么一个问题
- template<class T>
- class MyList
- {
- public:
- typedef std::list<T>::iterator iterator;
- };
当我想这样封装迭代器的时候,编译器告诉我:依赖名称不是类型
遂百度。得答案:
- template<class T>
- class MyList
- {
- public:
- typedef typename std::list<T>::iterator iterator;
- };
这样写即可。typename关键字会将后面的内容认为是一个类型。
但是其实还是没完全搞明白,待搞明白了来续写个详细原因。