Я искал что-то подобное, но не смог найти его (или то, что я нашел, не помогло).Я пытаюсь использовать итератор для вектора класса шаблона, возвращая его и используя его вне класса, как показано в приведенном ниже коде.
#include <iostream>
#include <vector>
using namespace std;
namespace ns {
template <class T>
class test {
private:
vector<T> container;
public:
typedef vector<T>::iterator iterator;
vector<T>::iterator begin() {
return container.begin();
}
vector<T>::iterator end() {
return container.end();
}
}
};
int main(void) {
test<int> inters;
for (ns::test<int>::iterator i = inters.begin(); i != inters.end(); i++) {
// bla bla bla
}
cout << "end" << endl;
return 0;
}
(вы также можете проверитькод здесь: http://codepad.org/RuXCYF6T)
В строке 15 появляется следующая ошибка:
error: type '__gnu_debug_def::vector<_Tp, std::allocator<_CharT> >' is not derived from type 'ns::test<T>'
compilation terminated due to -Wfatal-errors.
Заранее спасибо.