#include <iostream>
// Use templates to redirect < to << for all types.
template <typename T>
std::ostream& operator<(std::ostream &os, const T& value)
{
return os << value;
}
// This is for functions such as std::endl.
std::ostream& operator<(std::ostream &os, std::ostream& (*f)(std::ostream&))
{
return f(os);
}
int main()
{
std::cout < "abc" < 123 < std::endl;
}