$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: David Richardson (dgr24_at_[hidden])
Date: 2003-10-16 07:58:34
David Abrahams wrote:
> Well, you can make "compile-time rationals", but they can't look like
> our Boost rational class because the numerator and denominator have to
> be part of the type.
The syntax I ended up with is a bit messy, but it works. You can
use it as:
typedef Rational::New<1,2>::type oneHalf;
typedef Rational::New<3,2>::type threeHalves;
//all rationals are stored in reduced terms
Rational::Add<oneHalf, threeHalves>::type two;
//get at the numerator and denominator
assert(two::n == 2);
assert(two::d == 1);
There are 'methods' for addition, subtraction, multiplication,
division, and absolute value.
I considered arbitrary precision compile-time integers for the
numerator and denominator, but that seemed like far too much work
for no clear payoff.
Dave