/* The following code example is taken from the book * "The C++ Standard Library - A Tutorial and Reference" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */ #include #include template inline std::basic_ostream& operator << (std::basic_ostream& strm, const Fraction& f) { /* string stream * - with same format * - without special field width */ std::basic_ostringstream s; s.copyfmt(strm); s.width(0); // fill string stream s << f.numerator() << '/' << f.denominator(); // print string stream strm << s.str(); return strm; }