missing operator !=

Stefan Seefeld seefeld@sympatico.ca
Mon Mar 19 20:35:00 GMT 2001


hi there, I'v just tried out a recent gcc snapshot, and I came
across the following problem:

#include <list>
#include <iterator>
#include <cassert>

template <class T>
class iterator : public std::iterator<std::bidirectional_iterator_tag, T>
{
public:
   typedef iterator<T> self;
   friend bool operator == <>(self, self);
};

template <class T>
inline bool operator==(iterator<T> x, iterator<T> y) { return true;}

int main(int, char **)
{
   iterator<int> i, j;
   if (i != j);
}

The compiler complains about an undefined operator != for the iterators.
Shouldn't this operator be generated from the existing operator == ?
Am I missing an include ?

Regards, 
Stefan



More information about the Libstdc++ mailing list