Boost logo

Boost :

From: Cromwell Enage (sponage_at_[hidden])
Date: 2004-05-22 22:17:58


A while back it was mentioned that
boost::mpl::rational_c and boost::mpl::fixed_c needed
redesigning.

Before I attempt to tackle this task anymore than I
already have, I should have some questions answered.

1. For those compilers for which BOOST_NO_LIMITS is
defined, I've learned that there is no way to include
a floating-point number in an integral constant
expression. Does this mean that no matter how I
define fixed_c::value, I cannot pass fixed_c as a
template argument to a metafunction that ordinarily
takes integral_c as input? Do I have to duplicate the
functionality as a result? If so, what should be the
naming convention for these new metafunctions?

2. Should I define fixed_c in terms of rational_c, to
reduce the amount of functionality I may need to
duplicate? Something like this:

template <typename IntType, IntType N,
          IntType PowerOf10>
struct fixed_c
{
    typedef rational_c<IntType,...,...>
            type;
};

3. Eventually the compile-time rational-number
representation will need to be converted to a runtime
floating-point value. Should I define this conversion
function within rational_c (which means an additional
template parameter, with either function or class
scope, defining the return value type), within a
wrapper struct, or somewhere else? And how?

4. I only have to deal with rational numbers, right?
I don't have to worry about accurately representing a
transcendental number or a complex-number expression?

                              TIA!
                              Cromwell Enage

        
                
__________________________________
Do you Yahoo!?
Yahoo! Domains – Claim yours for only $14.70/year
http://smallbusiness.promotions.yahoo.com/offer


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk