#include #if !BOOST_PP_VARIADICS # error "this compiler does not support variadic macros" #else #include #define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_INDEX_TEST \ BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_EXCEPT_INDEX #include "../aux_/pp_traits.hpp" #include #include #define BOOST_CONTRACT_TEST_(trait) \ BOOST_CONTRACT_TEST_AUX_PP_TRAITS( \ BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXCEPT, \ BOOST_CONTRACT_EXT_PP_FUNC_TRAITS, \ (std::map&) (f) ( int x, (std::map&) y ) const, \ trait, \ final override, \ trait \ ) int main ( ) { BOOST_CONTRACT_TEST_( BOOST_PP_EMPTY() ) BOOST_CONTRACT_TEST_( noexcept ) BOOST_CONTRACT_TEST_( noexcept(sizeof(int) < 16) ) BOOST_CONTRACT_TEST_( noexcept(my::map::key_size) ) BOOST_CONTRACT_TEST_( throw() ) BOOST_CONTRACT_TEST_( throw(std::exception) ) BOOST_CONTRACT_TEST_( throw(std::exception, my::map::error) ) return BOOST_CONTRACT_TEST_AUX_PP_TRAITS_REPORT_ERRORS; } #endif // variadics