I've written an operator<< for my templated class:
template<class T>
std::ostream& operator<<(std::ostream &strm, const MyClass<T> &obj)
and when I write
cout << myClassInstance << endl;
this compiles and runs, but my Eclipse CDT says:
Invalid overload of 'endl'
Why does it tell me that?
(I use Eclipse CDT Kepler on Win7 64bit with Cygwin gcc)
I was getting this error as well.
//print the value
cout << rt->element << endl;
A simple change to:
//print the value
cout << rt->element;
cout << endl;
removed the error for me. New to C++, but it seems like you also need to overload << for myClassInstance. If you want to use the original method.
This is indeed a bug with Eclipse CDT (more specifically Eclipse's Code Analysis tool CODAN). There is bug report and it has been fixed and should be available from CDT 8.3.0 which is due February 2014.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With