Boost logo

Boost :

From: Daniel Frey (d.frey_at_[hidden])
Date: 2005-05-10 12:21:08


Andy Little wrote:
>
> "Tobias Schwinger" <tschwinger_at_[hidden]> wrote
>
>> Btw. Daniel Frey's library looks very interesting - did you take a
>> look at it
>> ?
>
> I looked at it during the math constants review. I didnt look at the latest
> version, but I have now. Unfortunately it doesnt compile on VC7.1 but
> looks like
> a smarter version of my offering. (I guess that 's where the idea for
> mine came
> from.) OTOH it doesnt do eg double(pi) which syntax I happen to like.

Me too, but it doesn't work for generic types T. If T has several ctors
that take different types (e.g. float, double, T), pi has no way to
decide which cast would be appropriate.

>> It uses expression templates to allow "constant expressions" e.g: 'pi
>> * two'
>> or 'pow(two,one / twelve)'

Hm... I just had the idea of allowing a simple 'constant_<2> two;' to
declare integer constants, but immediately ran into a more subtle
problem involving two_value. Seems there's still something to redesign,
so I have to play with this idea for some time...

> Thats interesting . I need this type of thing , but its clumsy in use.

What is clumsy, what would be an improvement? Or a better syntax? Even
if it seems impossible, I would like to know what others consider
intuitive. If you have an idea how it should look like, please share it.

> In an ideal world I guess one would be able to say e.g pow(my_num, n
> ,d );
> and get the function template <typename T, int N, int D > T pow(T,N, D);

Here, I'm at a loss. Can you elaborate, please?

Regards, Daniel


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