#include <iostream>
class logger
{
public:
logger() : target(std::cout) {}
template<class T> inline
logger& operator<<(T const& v )
{
target << v;
return *this;
}
template<class T> inline
logger& operator<<(T& v )
{
target << v;
return *this;
}
private:
ostream& target;
};
int main()
{
logger myLog;
myLog << "yo dawg " << 43 << "!!!";
}