2121# include < boost/preprocessor/comma_if.hpp>
2222# include < boost/preprocessor/iterate.hpp>
2323# include < boost/preprocessor/debug/line.hpp>
24+ # include < boost/preprocessor/enum_params.hpp>
25+ # include < boost/preprocessor/repetition/enum_trailing_params.hpp>
2426
2527namespace boost { namespace python { namespace detail {
2628
@@ -74,15 +76,15 @@ struct arg_tuple_size
7476
7577# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
7678
77- template <class R BOOST_PP_COMMA_IF (N) BOOST_PYTHON_UNARY_ENUM( N, class A )>
79+ template <class R BOOST_PP_ENUM_TRAILING_PARAMS_Z ( 1 , N, class A )>
7880struct arg_tuple_size<R (*)(BOOST_PYTHON_UNARY_ENUM(N, A))>
7981{
8082 BOOST_STATIC_CONSTANT (std::size_t , value = N);
8183};
8284
8385# else
8486
85- template <class R BOOST_PP_COMMA_IF (N) BOOST_PYTHON_UNARY_ENUM( N, class A )>
87+ template <class R BOOST_PP_ENUM_TRAILING_PARAMS_Z ( 1 , N, class A )>
8688char_array<N> arg_tuple_size_helper(
8789 R (*)(BOOST_PYTHON_UNARY_ENUM(N, A)));
8890
@@ -107,17 +109,17 @@ char_array<N> arg_tuple_size_helper(
107109
108110# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
109111
110- template <class R , class T BOOST_PP_COMMA_IF (N) BOOST_PYTHON_UNARY_ENUM( N, class A )>
111- struct arg_tuple_size<R (T::*)(BOOST_PYTHON_UNARY_ENUM( N, A)) Q>
112+ template <class R , class T BOOST_PP_ENUM_TRAILING_PARAMS_Z ( 1 , N, class A )>
113+ struct arg_tuple_size<R (T::*)(BOOST_PP_ENUM_PARAMS_Z( 1 , N, A)) Q>
112114{
113115 BOOST_STATIC_CONSTANT (std::size_t , value = N + 1U );
114116};
115117
116118# else
117119
118- template <class R , class T BOOST_PP_COMMA_IF (N) BOOST_PYTHON_UNARY_ENUM( N, class A )>
120+ template <class R , class T BOOST_PP_ENUM_TRAILING_PARAMS_Z ( 1 , N, class A )>
119121char_array<N + 1> arg_tuple_size_helper(
120- R (T::*)(BOOST_PYTHON_UNARY_ENUM( N, A)) Q);
122+ R (T::*)(BOOST_PP_ENUM_PARAMS_Z( 1 , N, A)) Q);
121123
122124# endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
123125
0 commit comments