"using" 关键字 - 将迭代器传递给函数

"using" keyword - passing iterator to function

我正在写一个 class 序列。它的构造函数将两个模板化向量迭代器作为参数。 这是代码:

template <class T> using ConstIterator_t = typename std::vector<T>::const_iterator;
template <class T>
class Sequence{
public:
Sequence(ConstIterator_t start, ConstIterator_t end);
//rest of the code
};

当我编译代码时,它显示了这个错误:在 'start'.

之前需要')'

你能帮帮我吗? 非常感谢。

[edit] 顺便说一句,当我用它的定义更改 ConstIterator_t 时,错误消失了。

ConstIterator_t 是一个模板(alias template),您需要为其指定模板参数。例如

template <class T> using ConstIterator_t = typename std::vector<T>::const_iterator;
template <class T>
class Sequence{
public:
    Sequence(ConstIterator_t<T> start, ConstIterator_t<T> end);
    // same as
    Sequence(typename std::vector<T>::const_iterator start, typename std::vector<T>::const_iterator end);
};