Files
contract/test/pp_func_traits/except.cpp
2015-01-13 19:05:56 -08:00

41 lines
1.2 KiB
C++

#include <boost/preprocessor/config/config.hpp>
#if !BOOST_PP_VARIADICS
# error "this compiler does not support variadic macros"
#else
#include <boost/contract/ext_/preprocessor/traits/func/aux_/index.hpp>
#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 <boost/contract/ext_/preprocessor/traits/func.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
#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<int, char>&) (f) ( int x, (std::map<int, char>&) 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<int, char>::key_size) )
BOOST_CONTRACT_TEST_( throw() )
BOOST_CONTRACT_TEST_( throw(std::exception) )
BOOST_CONTRACT_TEST_( throw(std::exception, my::map<int, char>::error) )
return BOOST_CONTRACT_TEST_AUX_PP_TRAITS_REPORT_ERRORS;
}
#endif // variadics