From a5e961c805322b7fd15d07391807bfc95442c50c Mon Sep 17 00:00:00 2001 From: mat007 Date: Fri, 7 May 2010 12:20:28 +0000 Subject: [PATCH] Refactoring git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@153 860be788-9bd5-4423-9f1e-828f051e677b --- src/libraries/turtle/expectation.hpp | 19 ++++++++++++------- src/libraries/turtle/function.hpp | 4 ++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/libraries/turtle/expectation.hpp b/src/libraries/turtle/expectation.hpp index fff3818..f0663cf 100644 --- a/src/libraries/turtle/expectation.hpp +++ b/src/libraries/turtle/expectation.hpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -105,7 +106,7 @@ namespace detail int line_; }; - template< typename Result, typename Signature, int > + template< typename Signature, int > class expectation { }; @@ -147,9 +148,11 @@ namespace detail return *this; \ } - template< typename Result, typename Signature > - class expectation< Result, Signature, 0 > - : public expectation_base, public action< Result, Signature > + template< typename Signature > + class expectation< Signature, 0 > + : public expectation_base + , public action< BOOST_DEDUCED_TYPENAME + boost::function_types::result_type< Signature >::type, Signature > { public: bool is_valid() const @@ -180,9 +183,11 @@ namespace detail #define MOCK_EXPECTATION_IS_VALID(z, n, d) && c##n##_( a##n ) #define MOCK_EXPECTATION_SERIALIZE(z, n, d) BOOST_PP_IF(n, << ", " <<,) m.c##n##_ #define MOCK_EXPECTATION(z, n, d) \ - template< typename Result, typename Signature > \ - class expectation< Result, Signature, n > \ - : public expectation_base, public action< Result, Signature > \ + template< typename Signature > \ + class expectation< Signature, n > \ + : public expectation_base \ + , public action< BOOST_DEDUCED_TYPENAME \ + boost::function_types::result_type< Signature >::type, Signature > \ { \ BOOST_PP_REPEAT_FROM_TO(0, n, MOCK_EXPECTATION_TYPEDEF, BOOST_PP_EMPTY) \ public: \ diff --git a/src/libraries/turtle/function.hpp b/src/libraries/turtle/function.hpp index a498e94..ca4d0e1 100644 --- a/src/libraries/turtle/function.hpp +++ b/src/libraries/turtle/function.hpp @@ -48,8 +48,8 @@ namespace mock }; private: - typedef detail::expectation< result_type, Signature, arity::value > - expectation_type; + typedef BOOST_DEDUCED_TYPENAME + detail::expectation< Signature, arity::value > expectation_type; public: struct function_tag