I'm going to check in the following patch to ref.hpp, which makes the traits into valid MPL metafunctions. It introduces a dependency on one new file (boost/mpl/bool_c.hpp), but that's truly the cleanest way to get there. If there are any objections, I'm willing to employ less-clean methods, but it will be more code.
-Dave Index: boost/ref.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/ref.hpp,v retrieving revision 1.17 diff -w -u -r1.17 ref.hpp --- boost/ref.hpp 25 Aug 2002 11:56:32 -0000 1.17 +++ boost/ref.hpp 25 Feb 2003 00:47:14 -0000 @@ -7,6 +7,7 @@ # include <boost/config.hpp> # include <boost/utility/addressof.hpp> +# include <boost/mpl/bool_c.hpp> // // ref.hpp - ref/cref, useful helper functions @@ -73,16 +74,14 @@ # ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION template<typename T> class is_reference_wrapper + : public mpl::false_c { - public: - BOOST_STATIC_CONSTANT(bool, value = false); }; template<typename T> class is_reference_wrapper<reference_wrapper<T> > + : public mpl::true_c { - public: - BOOST_STATIC_CONSTANT(bool, value = true); }; template<typename T> @@ -146,6 +145,8 @@ bool, value = ( sizeof(detail::is_reference_wrapper_test(type<T>())) == sizeof(detail::yes_reference_wrapper_t))); + + typedef ::boost::mpl::bool_c<value> type; }; template <typename T> -- Dave Abrahams Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost