diff --git a/include/turtle/mock.hpp b/include/turtle/mock.hpp index 4cb57cf..0b44e02 100644 --- a/include/turtle/mock.hpp +++ b/include/turtle/mock.hpp @@ -21,7 +21,6 @@ #include "detail/parameter.hpp" #include #include -#include #include #include @@ -180,49 +179,53 @@ #ifdef MOCK_VARIADIC_MACROS +#define MOCK_VARIADIC_ELEM_0(e0, ...) e0 +#define MOCK_VARIADIC_ELEM_1(e0, e1, ...) e1 +#define MOCK_VARIADIC_ELEM_2(e0, e1, e2, ...) e2 + #define MOCK_METHOD(M, ...) \ MOCK_METHOD_EXT(M, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__ ), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, MOCK_SIGNATURE(M)), \ - BOOST_PP_VARIADIC_ELEM(2, __VA_ARGS__, M, M)) + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, MOCK_SIGNATURE(M), ), \ + MOCK_VARIADIC_ELEM_2(__VA_ARGS__, M, M, )) #define MOCK_CONST_METHOD(M, n, ...) \ MOCK_CONST_METHOD_EXT(M, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, M)) + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, M, )) #define MOCK_NON_CONST_METHOD(M, n, ...) \ MOCK_NON_CONST_METHOD_EXT(M, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, M)) + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, M, )) #define MOCK_METHOD_TPL(M, n, ...) \ MOCK_METHOD_EXT_TPL(M, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, M)) + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, M, )) #define MOCK_CONST_METHOD_TPL(M, n, ...) \ MOCK_CONST_METHOD_EXT_TPL(M, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, M)) + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, M, )) #define MOCK_NON_CONST_METHOD_TPL(M, n, ...) \ MOCK_NON_CONST_METHOD_EXT_TPL(M, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, M)) + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, M, )) #define MOCK_FUNCTION(F, n, ...) \ MOCK_FUNCTION_AUX(F, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, F), \ + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, F, ), \ inline,) #define MOCK_STATIC_METHOD(F, n, ...) \ MOCK_FUNCTION_AUX(F, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, F), \ + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, F, ), \ static,) #define MOCK_STATIC_METHOD_TPL(F, n, ...) \ MOCK_FUNCTION_AUX(F, n, \ - BOOST_PP_VARIADIC_ELEM(0, __VA_ARGS__), \ - BOOST_PP_VARIADIC_ELEM(1, __VA_ARGS__, F), \ + MOCK_VARIADIC_ELEM_0(__VA_ARGS__, ), \ + MOCK_VARIADIC_ELEM_1(__VA_ARGS__, F, ), \ static, typename) #else // MOCK_VARIADIC_MACROS