次のようなテンプレートクラスを動作させたいのですが、メンバ関数 begin と end の行で
「C2061 構文エラー: 識別子 'iterator'」のようなエラーがでてしまいます。
コンテナの iterator は、そのまま戻り値の型として使うことはできないのでしょうか?
#include <vector>
template <class T> class MyVector {
private:
std::vector<T> m_vector;
public:
void add(T value) {
m_vector.push_back(value);
}
std::vector<T>::iterator begin() { // <==== エラー!!
return m_vector.begin();
}
std::vector<T>::iterator end() { // <==== エラー!!
return m_vector.end();
}
};
int main() {
MyVector<int> values;
values.add(1);
values.add(2);
for (auto it=values.begin(); it!=values.end(); it++) {
// 反復
}
return 0;
}