File indexing completed on 2025-01-18 09:43:30
0001
0002
0003
0004
0005
0006 #ifndef BOOST_PARAMETER_MATCH_DWA2005714_HPP
0007 #define BOOST_PARAMETER_MATCH_DWA2005714_HPP
0008
0009 #include <boost/parameter/config.hpp>
0010
0011 #if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
0012 #include <boost/parameter/aux_/void.hpp>
0013 #include <boost/preprocessor/arithmetic/sub.hpp>
0014 #include <boost/preprocessor/facilities/intercept.hpp>
0015 #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
0016 #include <boost/preprocessor/seq/size.hpp>
0017
0018 #define BOOST_PARAMETER_MATCH_DEFAULTS(ArgTypes) \
0019 BOOST_PP_ENUM_TRAILING_PARAMS( \
0020 BOOST_PP_SUB( \
0021 BOOST_PARAMETER_MAX_ARITY \
0022 , BOOST_PP_SEQ_SIZE(ArgTypes) \
0023 ) \
0024 , ::boost::parameter::void_ BOOST_PP_INTERCEPT \
0025 )
0026
0027 #else
0028 #define BOOST_PARAMETER_MATCH_DEFAULTS(ArgTypes)
0029 #endif
0030
0031 #include <boost/parameter/aux_/preprocessor/seq_enum.hpp>
0032
0033
0034
0035
0036
0037
0038
0039
0040 #define BOOST_PARAMETER_MATCH(ParameterSpec, ArgTypes, name) \
0041 typename ParameterSpec::match< \
0042 BOOST_PARAMETER_SEQ_ENUM(ArgTypes) \
0043 BOOST_PARAMETER_MATCH_DEFAULTS(ArgTypes) \
0044 >::type name = ParameterSpec()
0045
0046
0047 #endif
0048