I\'ve not coded in C++ for a long time and I\'m trying to fix some old code.
I\'m geting the error:
TOutputFile& TOutputFile::operator<<(TOutpu
Check the reference
The overloads of
operator>>
andoperator<<
that take astd::istream&
orstd::ostream&
as the left hand argument are known as insertion and extraction operators. Since they take the user-defined type as the right argument (b in a@b), they must be implemented as non-members.
Hence, they must be non-member functions, and take exactly two arguments when they are meant to be stream operators.
If you are developing your own stream class, you can overload operator<<
with a single argument as a member function. In this case, the implementation would look something like this:
template
TOutputFile &operator<<(const T& a) {
// do what needs to be done
return *this; // note that `*this` is the TOutputFile object as the lefthand side of <<
}