
Hi,
From: Peder Holt
It would perhaps be a good idea to use mpl::int_<> instead of give_number<> to specify a constraint limit.
But the point is that give_number is a function object type, it can't be replaced with a template metafunction. If one wants to have integral bounds, he may use bounded_int which takes integral constants as its parameters.
You can also use mpl::math::double_c<> (available from the file vault: Template Metaprogramming/mpl_math.zip)
The problem is double_c is not a function object type - it only defines operator value_type(). If it'd also define value_type operator() () { return static_cast<value_type>(*this); } then it would be usable in this case. Maybe you'll consider the possibility to add this operator to double_c?
To extract a runtime equivalent: boost::mpl::runtime_value<MinValGen::value_type>(MinValGen());
There's something I don't understand - what does the above line do? I can't see runtime_value having a constructor? Best regards, Robert