创建迭代器时的Typename和typedef

时间:2013-03-07 02:18:11

标签: c++ templates typedef typename

我有这段代码:

template <typename T>
class CircularBuffer
{
 public:
  typename typedef std::list<T>::iterator iterator;

  //other code
};

迭代器声明中的typename是做什么的?我知道typedef正在说&#34;我有一个列表迭代器,我想调用&#39; iterator&#39;。但是typename的目的是什么?是不是因为我的列表可以存储我需要的任何类型名称?这是为了别的吗?

谢谢,

汤姆

编辑:是因为列表迭代器是一个合格的依赖类型,所以我之前需要typename吗?或者,更准确地说,我定义的typedef,&#39; iterator&#39;它基于类型std :: list :: iterator是一个限定的依赖类型,因为它是一个合格的依赖列表的迭代器?

0 个答案:

没有答案