error while making custom cout
c++
Solution
You need a member `operator<<` which returns a reference to the object instance:
class CustomOut
{
...
CustomOut& operator<<(string const& msg)
{
// Process message.
f(msg);
return *this;
}
};
This will allow you to "stream" into your `CustomOut` class in a chaining manner:
CustomOut out;
out << str_0 << str_i << ... << str_n;
Problem
I am trying to make a custom cout class that outputs text to console output and log file when i try to run a version of this code that does not handle chaining (out<<"one"<<"two") it works fine, but when i try to make it handle chaining it gives me "too many parameters for this operator function". What am i missing? ``` class CustomOut { ofstream of; public: CustomOut() { of.open("d:\\NIDSLog.txt", ios::ate | ios::app); } ~CustomOut() { of.close(); } CustomOut operator<<(CustomOut& me, string msg) { of<<msg; cout<<msg; return this; }}; ```