我有这段代码:
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是一个限定的依赖类型,因为它是一个合格的依赖列表的迭代器?