
Scattered throughout the metamath library are template specializations of numeric metafunction classes like the following: template <> struct times_impl< integral_c_tag , metamath::double_c_tag
{ ... } The purpose of mpl::numeric_cast<> (or BOOST_MPL_AUX_NUMERIC_CAST) is to render such specializations unnecessary. I understand that if template instantiation overhead is a problem then the current situation is okay, but if we start implementing more numeric metatypes such as metamath::float_ and/or metamath::long_double_, then the net increase in code size will become an issue. Also included in the last update of my math sublibrary are files from the metamath library that I modified to make use of BOOST_MPL_AUX_NUMERIC_CAST: * In <boost/metamath/double/double.hpp> I modified double_c_tag so that it inherits from boost::mpl::int_<8> (an arbitrary constant higher than zero). * In <boost/metamath/double/integral_to_double.hpp> I added a template specialization of BOOST_MPL_AUX_NUMERIC_CAST that uses integral_to_double<>. * In the other files I deleted the redundant specializations. Let me know what you think. Cromwell D. Enage __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com