Move the arity-mismatch assertion in front of the function

Shows that error first before deep-diving into templates
This commit is contained in:
Alexander Grund 2022-01-25 18:45:32 +01:00
parent 371859e81b
commit c00b03de44
No known key found for this signature in database
GPG key ID: AA48A0760367A42B

View file

@ -47,12 +47,9 @@ namespace mock { namespace detail {
#define MOCK_FORWARD_PARAM(z, n, d) BOOST_PP_COMMA_IF(n) d, n >> (p##n) #define MOCK_FORWARD_PARAM(z, n, d) BOOST_PP_COMMA_IF(n) d, n >> (p##n)
#define MOCK_FORWARD_PARAMS(n, S) BOOST_PP_REPEAT(n, MOCK_FORWARD_PARAM, std::forward < MOCK_PARAM(S)) #define MOCK_FORWARD_PARAMS(n, S) BOOST_PP_REPEAT(n, MOCK_FORWARD_PARAM, std::forward < MOCK_PARAM(S))
#define MOCK_METHOD_AUX(M, n, S, t, c) \ #define MOCK_METHOD_AUX(M, n, S, t, c) \
MOCK_DECL(M, n, S, c) \ static_assert(n == mock::detail::function_arity<S>::value, "Arity mismatch"); \
{ \ MOCK_DECL(M, n, S, c) { return MOCK_ANONYMOUS_HELPER(t)(MOCK_FORWARD_PARAMS(n, S)); }
static_assert(n == mock::detail::function_arity<S>::value, "Arity mismatch"); \
return MOCK_ANONYMOUS_HELPER(t)(MOCK_FORWARD_PARAMS(n, S)); \
}
#define MOCK_METHOD_EXT(M, n, S, t) \ #define MOCK_METHOD_EXT(M, n, S, t) \
MOCK_METHOD_AUX(M, n, S, t, ) \ MOCK_METHOD_AUX(M, n, S, t, ) \