#include "TestMFHasTemplateCheckParams.hpp" #include int main() { using namespace boost::mpl::placeholders; // You can always instantiate without compiler errors tti::mf_has_template_check_params < tti::has_template_check_params_TemplateNotExist<_>, tti::mf_member_type < tti::mtfc_member_type_CType, tti::MT_BType > > aVar; // Compile time asserts BOOST_MPL_ASSERT((tti::mf_has_template_check_params < tti::HT_Str<_>, tti::member_type_AStructType > )); BOOST_MPL_ASSERT((tti::mf_has_template_check_params < tti::has_template_check_params_AnotherMemberTemplate<_>, boost::mpl::identity > )); BOOST_MPL_ASSERT((tti::mf_has_template_check_params < tti::has_template_check_params_CTManyParameters<_>, tti::mf_member_type < tti::member_type_CType<_>, tti::MT_BType > > )); BOOST_MPL_ASSERT((tti::mf_has_template_check_params < tti::MF_HT_Str, tti::member_type_AStructType > )); BOOST_MPL_ASSERT((tti::mf_has_template_check_params < tti::mtfc_has_template_check_params_AnotherMemberTemplate, boost::mpl::identity > )); BOOST_MPL_ASSERT((tti::mf_has_template_check_params < tti::mtfc_has_template_check_params_CTManyParameters, tti::mf_member_type < tti::mtfc_member_type_CType, tti::MT_BType > > )); return 0; }