次のような 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」の前」。