diff --git a/include/boost/mpl/empty_base.hpp b/include/boost/mpl/empty_base.hpp index a5841cf..69630a5 100644 --- a/include/boost/mpl/empty_base.hpp +++ b/include/boost/mpl/empty_base.hpp @@ -17,12 +17,10 @@ #include #include #include +#include #include -// should be always the last #include directive -#include - namespace boost { namespace mpl { // empty base class, guaranteed to have no members; inheritance from @@ -51,9 +49,14 @@ struct is_empty_base }} namespace boost { -BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_empty, mpl::empty_base, true) + +template<> struct is_empty< mpl::empty_base > + : public ::boost::integral_constant +{ +public: + BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,is_empty,(mpl::empty_base)) +}; + } -#include - #endif // BOOST_MPL_EMPTY_BASE_HPP_INCLUDED diff --git a/test/apply.cpp b/test/apply.cpp index 6ee8e78..71bcbf9 100644 --- a/test/apply.cpp +++ b/test/apply.cpp @@ -76,7 +76,7 @@ MPL_TEST_CASE() typedef apply1< _1, std_vector<_1> >::type v_lambda; typedef apply1::type v_int; - MPL_ASSERT(( is_same< v,std_vector > )); + MPL_ASSERT(( is_same< v_int,std_vector > )); } MPL_TEST_CASE() @@ -86,7 +86,7 @@ MPL_TEST_CASE() typedef apply1< lambda<_1>, std_vector<_1> >::type make_vector; typedef apply_wrap1< make_vector,int >::type v_int; - MPL_ASSERT(( is_same< v,std_vector > )); + MPL_ASSERT(( is_same< v_int,std_vector > )); } MPL_TEST_CASE()