xo-umbrella2/xo-ratio/include/xo/ratio/ratio_iostream.hpp
Roland Conybeare f743ceb830 git subrepo clone git@github.com:Rconybea/xo-ratio.git xo-ratio
subrepo:
  subdir:   "xo-ratio"
  merged:   "6b51f238"
upstream:
  origin:   "git@github.com:Rconybea/xo-ratio.git"
  branch:   "main"
  commit:   "6b51f238"
git-subrepo:
  version:  "0.4.9"
  origin:   "???"
  commit:   "???"
2026-06-06 22:23:12 -04:00

42 lines
980 B
C++

/** @file ratio_iostream.hpp
*
* Author: Roland Conybeare
**/
#pragma once
#include "ratio.hpp"
#include <ostream>
namespace xo {
namespace ratio {
/** @brief print ratio x on stream os.
*
* Example:
* @code
* print_ratio(std::cerr, make_ratio(1,2); // outputs "<ratio 1/2>"
* @endcode
**/
template <typename Int>
void
print_ratio (std::ostream & os, const ratio<Int> & x) {
os << "<ratio " << x.num() << "/" << x.den() << ">";
}
/** @brief print ratio x on stream os.
*
* Example:
* @code
* std::cout << make_ratio(2,3); // outputs "<ratio 2/3>"
* @endcode
**/
template <typename Int>
inline std::ostream &
operator<< (std::ostream & os, const ratio<Int> & x) {
print_ratio(os, x);
return os;
}
}
}
/** end ratio_iostream.hpp **/