[INVALID] operator != @ std::list::iterator
-
for (std::list<msg::Envelope>::iterator cur(inbox_.begin()), end(inbox_.end()); cur != end; ++cur)
Compiliert nicht mit der Fehlermeldung
/usr/include/c++/4.3/bits/list.tcc:197: error: no match for ‘operator==’ in ‘__first.std::_List_iterator<_Tp>::operator* [with _Tp = msg::SEnvelope]() == __value’
Bei einem Minimalbeispiel gibt's keine Probleme:
#include <list> struct blob { }; int main() { std::list<blob> list; for (std::list<blob>::iterator cur2(list.begin()), end2(list.end()); cur2 != end2; ++cur2) { } }
inbox_.begin() + end() ist wie folgt definiert:
typename container_t::iterator begin() {return values_.begin();} typename container_t::iterator end() { return values_.end();}
values_ ist ein container_t values_
container_t ist in diesem Fall ein
typedef std::list<T, std::alocator<T> > container_t;
und T ist msg::Envelope
Jemand eine Idee?
EDIT://
Der Fehler lag wo *ganz* anders