Hi,
I made a simple logging subsystem called LogManager, which can redirect all logged messages onto other logs or listeners, etc.
Now I want to overload operator << so I can then write:
LogManager << "Something bad happened, error number: " << 1;
I tried it in numberous ways but still can't get result.
This is my current code:
Don't care about singleton and logMessage, these just works.
class LogManager : public Singleton<LogManager>
{
public:
inline friend void operator <<
( ostream& o, ostream& o2 )
{
stringstream s;
s << o2;
LogManager::getSingleton().logMessage(s.str());
}
};
But when I include LogManager << "Hello"; anywhere, GCC says "error: expected primary-expression before '<<' token".
What am I doing bad, I have zero experience with << operators, but why the hell do I need two paramaters? I guess first one is for predessor like "first << LogManager << second" but I am not sure.