$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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:
>
> <http://groups.yahoo.com/group/boost/files/mpl_math.zip>
>
> 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.
  #include <boost/config.hpp>
  template <typename RealNum>
  struct sample_t
  {
      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