0

我有这个代码:

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

  //other code
};

迭代器声明中的 typename 有什么作用?我知道 typedef 是在说“我有一个列表迭代器,我想称之为'iterator'。但是 typename 的目的是什么?仅仅是因为我的列表可以存储我需要的任何 typename T 吗?是为了什么别的?

谢谢,

汤姆

编辑:是不是因为列表迭代器是一个合格的依赖类型,所以我需要 typename 在它之前?或者,更正确地说,我正在定义的 typedef,基于 std::list::iterator 类型的“迭代器”是一个合格的依赖类型,因为它是一个合格的依赖列表的迭代器?

4

0 回答 0