$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Andy Little (andy_at_[hidden])
Date: 2004-01-31 11:38:52
"David Abrahams" <dave_at_[hidden]> wrote in message
news:uvfmsyz69.fsf_at_boost-consulting.com...
> "Andy Little" <andy_at_[hidden]> writes:
>
> > Hi,
> > Following preliminary ok of "pow" mpl metafunction by Alexey
> > Gurtovoy... Here are some basic headers for mpl functions pow_, root_
and
> > reciprocal.
> >
> > useage:
> > boost::mpl::pow_<type,exponent>::type
> > boost::mpl::root_<type,exponent>::type
> > boost::mpl::reciprocal<type>::type
>
> These aren't very interesting metafunctions, since they're all
> equivalent to mpl::always<implementation_defined> ;-)
Oops sorry perhaps read 'undefined',' user defined' not implementation
defined :-)
Not to stay that way just havent had time to write some simple examples.
(pow_<int_,int_> should be easy!) Could use one of my own but doesnt mean
much to many -->
The problem is I have specialised plus, minus, multiplies etc. for use in
'expression templates'. (think is right term).
However it would be odd to put these in separate namespace. OTOH I could
derive all from mpl in other namespace, but I didnt want to be 'ad-hoc'. ;-)
But maybe that is how mpl functions should be used?. Was waiting for the
book ... :-)
template<
typename Coherent_exponent ,
typename Incoherent_mux,
typename Tag
typename Exponent
>
struct pow_<
pqs::q_unit<
Coherent_exponent,
Incoherent_mux,
Tag
>,
Exponent
>{ // incoherent and tags removed
// multiply exponents
typedef typename pqs::q_unit<
typename multiplies<
Coherent_exponent,
Exponent
>::type,
typename Incoherent_mux::zero_type,
typename Tag::default_type
>::type type;
};
>
> What is the reason for the trailing underscores?
In case of pow_ to stop it name-clashing with pow(x,y), if 'using
boost::mpl' ,using std. In case of root_ for similarity with pow.
In case of reciprocal the underscore is very small. Thought 'power' might
also clash with other names.
But any suggestions appreciated.
regards
Andy Little