"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);
};
我正在写一个 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);
};