From: David Abrahams (dave_at_[hidden])
Date: 2004-05-15 21:07:56
Cromwell Enage <sponage_at_[hidden]> writes:
> Hi, all!
> I spent a bit of time reading Pete Isenesee's article,
> "Fast Math Using Template Metaprogramming", which can
> be found in Game Programming Gems, Section 1.2, and it
> inspired me to implement compile-time versions of some
> of the standard math functions. Two of the
> metafunctions even work for complex numbers, using the
> components as input instead of any particular complex
> number class. My work so far can be found here:
> Yes, it also provides the math constant PI. Perhaps a
> constants library can be built on top of this one?
> I'm holding off on putting this mini-library in the
> Sandbox until the file hierarchy is reasonably stable;
> I'm not even sure if the classes are well-structured
> at this point. For this reason, I'm also holding off
> on writing documentation; I'm hoping the example
> program would be simple enough to understand.
> Please send feedback!
Did you compile it? If so, on what compilers?
I can't see how it could possibly work.
template <typename RealNum>
BOOST_STATIC_CONSTANT(RealNum, base = 5.0);
BOOST_STATIC_CONSTANT(RealNum, power = 1.0);
BOOST_STATIC_CONSTANT(RealNum, angle = 1.234);
is an illegal program (try comeau online to see some reasons why).
Also, it's not very mpl-ish. Nothing seems to follow the
metafunction protocol of operating on and returning types.
I hate to be discouraging; it's probably a really interesting idea. I
am only looking as far as some details of the implementation, here.
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk