OK. Как говорится в вопросе, у меня есть метод Inline Template, который возвращает Iterator в общий вектор.
примечание: я знаю, что должен изменить реализацию на std :: find, но это не та проблема, с которой я сталкиваюсь.
#include <vector>
template<typename T>
class List : public std::vector<T>
{
public:
List();
~List();
bool Contains(T object);
void Remove(const T& object);
private:
typedef typename std::vector<T>::iterator iterator;
typename std::vector<T>::iterator IteratorOf(const T& object);
};
template<typename T>
inline typename std::vector<T>::iterator List<T>::IteratorOf(const T&
object)
{
if (this->empty())
return nullptr;
else
{
for (typename std::vector<T*>::iterator iter = this->begin();
iter != this->end();
iter++)
{
if (*object == *iter)
return iter;
}
}
return nullptr;
}
Это приводит к множеству ошибок компиляции, когда я пытаюсь его запустить.
Кажется, я все перепробовал, но этот метод просто не понравился.
Начинаю задумываться, есть ли проблема с возвратом обобщенных итераторов.