Ich benutze MinGW unter Window XP, aktuelle Version. Nun habe ich folgendes Problem:
Ich habe eine eine Liste von std::list abgeleitet
Code: Alles auswählen
class qListI : public std::list<T>
Die Fehlermeldung lautet: error: there are no arguments to 'begin' that depend on a template parameter, so a declaration of 'begin' must be available
Code: Alles auswählen
template <class T>
void qListI<T>::Clear()
{
erase(begin(), end());
}
Code: Alles auswählen
template <class T>
void qListI<T>::Clear()
{
this->erase(this->begin(), this->end());
}
Jetzt benötige ich eine Methode, um ein Element zu löschen:
Code: Alles auswählen
template <class T>
void qListI<T>::RemoveElement(const T &_t)
{
qListI<T>::iterator this->it; // <-------- wird nicht übersetzt
for (this->it=this->begin(); this->it!=this->end(); this->it++)
{
if (*(this->it) == _t)
{
this->erase(this->it, this->it);
}
}
}
error: need 'typename' before 'qBase::qListI<T>::iterator' because 'qBase::qListI<T>' is a dependent scope
..\qQt\/../qBase/Src/qListI.inl:119:24: error: expected ';' before 'this'
Frage 2) Wie kann ich die Methode formulieren, damit das geht? Wie gesagt... C++ Anfänger...
Vielen Dank für eure Hilfe