#include #if !BOOST_PP_VARIADICS # error "this compiler does not support variadic macros" #else #define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_INDEX_TEST \ BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_TEMPLATE_INDEX #include "../aux_/pp_traits.hpp" #include #include #define BOOST_CONTRACT_TEST_TEMPLATE_(func_traits) \ BOOST_CONTRACT_TEST_AUX_PP_TEMPLATE( \ BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_TEMPLATE(func_traits), \ BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_TEMPLATE_PARAMS(func_traits) \ ) #define BOOST_CONTRACT_TEST_AUX_PP_TEMPLATE_CHECK(template_params) \ BOOST_CONTRACT_TEST_AUX_PP_TRAITS( \ BOOST_CONTRACT_TEST_TEMPLATE_, \ BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PARSE_D, \ BOOST_PP_EMPTY(), \ template_params, \ (std::map&) (f) ( int x, (std::map&) y ), \ template_params \ ) #include "../aux_/pp_template.hpp" int main ( ) { boost::contract::test::aux::pp_template(); return BOOST_CONTRACT_TEST_AUX_PP_TRAITS_REPORT_ERRORS; } #endif // variadics