From f6200f9024aec894291e0fc581b7363ca694a8f7 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Sun, 20 Apr 2025 14:52:58 +0200 Subject: [PATCH] Require qualifiers for MOCK_METHOD_EXT --- include/turtle/detail/mock_impl.hpp | 12 +----------- include/turtle/mock.hpp | 3 ++- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/include/turtle/detail/mock_impl.hpp b/include/turtle/detail/mock_impl.hpp index bfa82a7..81cc955 100644 --- a/include/turtle/detail/mock_impl.hpp +++ b/include/turtle/detail/mock_impl.hpp @@ -16,8 +16,6 @@ #include "signature.hpp" #include "signature_traits.hpp" #include "type_name.hpp" -#include -#include #include #include #include @@ -77,19 +75,11 @@ namespace mock { namespace detail { BOOST_PP_TUPLE_ELEM(3, M_n_S_t), \ qualifier) -#define MOCK_METHOD_EXT_IMPL(name, arity, signature, identifier, qualifiers) \ +#define MOCK_METHOD_EXT(name, arity, signature, identifier, qualifiers) \ static_assert(arity == mock::detail::function_arity_t::value, "Arity mismatch"); \ MOCK_PP_TUPLE_FOR_EACH(MOCK_METHOD_ITER, (name, arity, signature, identifier), qualifiers) \ MOCK_METHOD_HELPER(signature, identifier) -/// MOCK_METHOD_EXT( name, arity, signature, identifier [ , qualifiers] ) -/// If qualifiers is not given, defaults to (const, ), i.e. const and non-const -#define MOCK_METHOD_EXT(name, arity, signature, ...) \ - MOCK_METHOD_EXT_IMPL \ - BOOST_PP_IF(BOOST_PP_LESS_EQUAL(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), 1), \ - (name, arity, signature, __VA_ARGS__, (const, )), \ - (name, arity, signature, __VA_ARGS__)) - #define MOCK_CONST_METHOD_EXT(M, n, S, t) MOCK_METHOD_EXT(M, n, S, t, (const)) #define MOCK_NON_CONST_METHOD_EXT(M, n, S, t) MOCK_METHOD_EXT(M, n, S, t, ()) diff --git a/include/turtle/mock.hpp b/include/turtle/mock.hpp index 31d5dc8..4e543df 100644 --- a/include/turtle/mock.hpp +++ b/include/turtle/mock.hpp @@ -80,7 +80,8 @@ 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, )) + BOOST_PP_VARIADIC_ELEM(2, __VA_ARGS__, M, M, ), \ + (const, )) /// MOCK_CONST_METHOD( [calling convention] name, arity[, signature[, identifier]] ) /// generates only the const version of the method /// The 'signature' can be omitted if it can be uniquely identified from the base class