Boost logo

Boost Users :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2005-03-21 16:25:55


Bruce Trask writes:
> I need to create a sequence of float values that the user can put in
> at compile time. Since floats cannot be used as template params I
> am assuming I cannot use vector_c in any way.

Correct.

>
> My plan was to have the user input the initial float values as
> mpl::vector<char> and then convert the chars to string and then the
> string to float when I needed to use it at runtime.

>From a user standpoint, this one sounds somewhat painful.

> My other idea was to make a struct that inherited from mpl::pair and
> have the first part be the integral part and the second part be the
> decimal part and again, construct the float from that.

Been there, please see
http://article.gmane.org/gmane.comp.lib.boost.devel/103064.

>
> So the two ideas look something like:

[snip code]

> What do you think of these ideas?
>
> I am assuming that there must be other solutions and perhaps these
> are not the best.

I think "the best" here heavily depends on the particular details of
your application for the whole thing. For instance, if you need
compile-time arithmetics on these, the "decimal" representation would
probably be the easiest one to build a prototype for. On the other
hand, if expect your users to enter a lot of these numbers, you might
want to reconsider at least the interface part -- et cetera.

Be sure to check Cromwell Enage's work on the subject:
http://thread.gmane.org/gmane.comp.lib.boost.devel/103302.

HTH,

-- 
Aleksey Gurtovoy
MetaCommunications Engineering

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net