#include "test_mf_has_member_function.hpp" #include int main() { using namespace boost::mpl::placeholders; // You can always instantiate without compiler errors boost::tti::mf_has_member_function < boost::tti::FunctionReturningInt<_,_>, boost::mpl::identity, boost::mpl::identity > aVar; boost::tti::mf_has_member_function < boost::tti::has_member_function_sFunction<_,_,_>, boost::mpl::identity, boost::tti::member_type_AnIntType, boost::mpl::vector < boost::mpl::identity, boost::mpl::identity, boost::mpl::identity > > aVar2; boost::tti::mf_has_member_function < boost::tti::has_member_function_someFunctionMember<_,_,_>, boost::mpl::identity, boost::mpl::identity, boost::mpl::vector < boost::mpl::identity, boost::mpl::identity, boost::mpl::identity > > aVar3; // Compile time asserts BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::has_member_function_VoidFunction<_,_>, boost::mpl::identity, boost::mpl::identity > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::FunctionReturningInt<_,_>, boost::mpl::identity, boost::mpl::identity > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::FunctionReturningInt<_,_,_>, boost::mpl::identity, boost::mpl::identity, boost::mpl::vector > > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::has_member_function_aFunction<_,_,_>, boost::mpl::identity, boost::mpl::identity, boost::mpl::vector > > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::AnotherIntFunction<_,_,_>, boost::mpl::identity, boost::mpl::identity, boost::mpl::vector > > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::has_member_function_sFunction<_,_,_>, boost::mpl::identity, boost::tti::member_type_AnIntType, boost::mpl::vector < boost::mpl::identity, boost::mpl::identity, boost::mpl::identity > > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::mtfc_has_member_function_VoidFunction, boost::mpl::identity, boost::mpl::identity > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::MFFunctionReturningInt, boost::mpl::identity, boost::mpl::identity > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::MFFunctionReturningInt, boost::mpl::identity, boost::mpl::identity, boost::mpl::vector > > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::mtfc_has_member_function_aFunction, boost::mpl::identity, boost::mpl::identity, boost::mpl::vector > > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::MFAnotherIntFunction, boost::mpl::identity, boost::mpl::identity, boost::mpl::vector > > )); BOOST_MPL_ASSERT((boost::tti::mf_has_member_function < boost::tti::mtfc_has_member_function_sFunction, boost::mpl::identity, boost::tti::member_type_AnIntType, boost::mpl::vector < boost::mpl::identity, boost::mpl::identity, boost::mpl::identity > > )); return 0; }