
Issues addressed: * All metafunctions that can be instantiated in user code have been registered with Boost.Typeof (see typeof.cpp for a test case). Registration of each metafunction occurs at the end of the header file in which the metafunction is declared, as per the "don't pay for what you don't use" policy. * The BOOST_MPL_AUX_TYPEOF_REGISTER_TYPE_C macro, defined in <boost/mpl/aux_/typeof/register_type_c.hpp>, enables one to register metafunctions that have the following form: template < typename ValueType , ValueType N1 , ValueType N2 , ...
struct metafunction { ... }; This macro is currently used to register rational_c, mixed_number_c, and complex_number_c; it is hoped that vector_c, list_c, range_c, and integral_c will also be registered by it. (The _C suffix indicates that the macro is to be used to register types ending in _c.) * I also suspect that the recent problem with double_::aux::get_value() is one of endianness. Unfortunately I don't know which combination of macros will detect Solaris. Therefore, BOOST_MPL_CFG_IS_LITTLE_ENDIAN, defined in <boost/mpl/aux_/config/endian.hpp>, is currently set to zero. (Double-check me if I named it correctly.) * In case no one has noticed--and judging from the contents of pqs3_0_0.zip, this seems to be the case--there is now a math::inverse metafunction, so you don't need to roll your own reciprocal<>. Cromwell D. Enage __________________________________________ Yahoo! DSL Something to write home about. Just $16.99/mo. or less. dsl.yahoo.com