I am working on a class that is supposed to make it easier to put stuff into message boxes. I want it to work like std::cout so I can do something like this:
Messagebox<<somevariable<<"blah blah blah"<<4654;
But I can't figure out how to do that without having to call a function at the end to display the message box, i.e., I have to do this:
Messagebox<<somevariable<<"blah blah blah"<<4654;
Messagebox.Display();
Does anyone know how to do this without having to call some display function? Here's what I have so far:
Code:
class MsgBox
{
public:
std::ostringstream & operator << (signed char & param){stream<<param;return stream;}
std::ostringstream & operator << (unsigned char & param){stream<<param;return stream;}
std::ostringstream & operator << (char & param){stream<<param;return stream;}
std::ostringstream & operator << (short & param){stream<<param;return stream;}
std::ostringstream & operator << (unsigned short & param){stream<<param;return stream;}
std::ostringstream & operator << (int & param){stream<<param;return stream;}
std::ostringstream & operator << (unsigned int & param){stream<<param;return stream;}
std::ostringstream & operator << (long & param){stream<<param;return stream;}
std::ostringstream & operator << (unsigned long & param){stream<<param;return stream;}
std::ostringstream & operator << (float & param){stream<<param;return stream;}
std::ostringstream & operator << (double & param){stream<<param;return stream;}
std::ostringstream & operator << (long double & param){stream<<param;return stream;}
void Display() {::MessageBox(NULL,stream.str().c_str(),"caption",MB_OK);}
protected:
std::ostringstream stream;
};