谁能解释为什么我不能像这样使用 C++ 模板:
template <typename T> class A {
public:
typedef std::vector<T>::iterator myiterator;
A(T value)
: v(10, value)
{
}
myiterator begin()
{
return v.begin();
}
myiterator end()
{
return v.end();
}
public:
std::vector<T> v;
};
int main()
{
A<int> a(10);
for (auto i = a.begin(); i != a.end(); ++i)
std::cout << *i << std::endl;
return 0;
}
我在声明 myiterator 别名的行出现编译错误;错误是:“缺少';' 在标识符“myiterator”之前”。