Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
googletest
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
googletest
Commits
7a8591e6
Commit
7a8591e6
authored
Jan 14, 2020
by
Abseil Team
Committed by
vslashg
Jan 16, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Googletest export
Use GMOCK_PP to generate args boilerplate. Move common args describing part to separate macroses that uses GMOCK_PP to generate sequences. PiperOrigin-RevId: 289655624
parent
0b024bd9
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
198 deletions
+58
-198
gmock-actions.h
googlemock/include/gmock/gmock-actions.h
+16
-0
gmock-generated-actions.h
googlemock/include/gmock/gmock-generated-actions.h
+36
-181
gmock-generated-actions.h.pump
googlemock/include/gmock/gmock-generated-actions.h.pump
+6
-17
No files found.
googlemock/include/gmock/gmock-actions.h
View file @
7a8591e6
...
...
@@ -50,6 +50,7 @@
#include "gmock/internal/gmock-internal-utils.h"
#include "gmock/internal/gmock-port.h"
#include "gmock/internal/gmock-pp.h"
#ifdef _MSC_VER
# pragma warning(push)
...
...
@@ -1275,6 +1276,21 @@ auto InvokeArgumentAdl(AdlTag, F f, Args... args) -> decltype(f(args...)) {
}
}
// namespace invoke_argument
#define GMOCK_INTERNAL_ARG_UNUSED(N, data, el) \
, const arg##N##_type& arg##N GTEST_ATTRIBUTE_UNUSED_
#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_ \
const args_type& args GTEST_ATTRIBUTE_UNUSED_ GMOCK_PP_REPEAT( \
GMOCK_INTERNAL_ARG_UNUSED, , 10)
#define GMOCK_INTERNAL_ARG(N, data, el) , const arg##N##_type& arg##N
#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_ \
const args_type& args GMOCK_PP_REPEAT(GMOCK_INTERNAL_ARG, , 10)
#define GMOCK_INTERNAL_TEMPLATE_ARG(N, data, el) , typename arg##N##_type
#define GMOCK_ACTION_TEMPLATE_ARGS_NAMES_ \
GMOCK_PP_TAIL(GMOCK_PP_REPEAT(GMOCK_INTERNAL_TEMPLATE_ARG, , 10))
}
// namespace internal
}
// namespace testing
...
...
googlemock/include/gmock/gmock-generated-actions.h
View file @
7a8591e6
...
...
@@ -142,19 +142,6 @@
// To learn more about using these macros, please search for 'ACTION' on
// https://github.com/google/googletest/blob/master/googlemock/docs/cook_book.md
// An internal macro needed for implementing ACTION*().
#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\
const args_type& args GTEST_ATTRIBUTE_UNUSED_, \
const arg0_type& arg0 GTEST_ATTRIBUTE_UNUSED_, \
const arg1_type& arg1 GTEST_ATTRIBUTE_UNUSED_, \
const arg2_type& arg2 GTEST_ATTRIBUTE_UNUSED_, \
const arg3_type& arg3 GTEST_ATTRIBUTE_UNUSED_, \
const arg4_type& arg4 GTEST_ATTRIBUTE_UNUSED_, \
const arg5_type& arg5 GTEST_ATTRIBUTE_UNUSED_, \
const arg6_type& arg6 GTEST_ATTRIBUTE_UNUSED_, \
const arg7_type& arg7 GTEST_ATTRIBUTE_UNUSED_, \
const arg8_type& arg8 GTEST_ATTRIBUTE_UNUSED_, \
const arg9_type& arg9 GTEST_ATTRIBUTE_UNUSED_
// Sometimes you want to give an action explicit template parameters
// that cannot be inferred from its value parameters. ACTION() and
...
...
@@ -540,16 +527,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
GMOCK_INTERNAL_DEFN_##value_params\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
...
...
@@ -576,10 +555,7 @@
template <GMOCK_INTERNAL_DECL_##template_params\
GMOCK_INTERNAL_DECL_TYPE_##value_params>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
GMOCK_ACTION_CLASS_(name, value_params)<\
GMOCK_INTERNAL_LIST_##template_params\
...
...
@@ -604,16 +580,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
};\
...
...
@@ -624,10 +592,7 @@
return name##Action();\
}\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##Action::gmock_Impl<F>::gmock_PerformImpl(\
GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
...
...
@@ -652,16 +617,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
...
...
@@ -675,10 +632,7 @@
}\
template <typename p0##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP<p0##_type>::gmock_Impl<F>::gmock_PerformImpl(\
GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
...
...
@@ -705,16 +659,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
private:\
...
...
@@ -730,10 +676,7 @@
}\
template <typename p0##_type, typename p1##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP2<p0##_type, p1##_type>::gmock_Impl<F>::gmock_PerformImpl(\
GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
...
...
@@ -761,16 +704,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -787,10 +722,7 @@
}\
template <typename p0##_type, typename p1##_type, typename p2##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP3<p0##_type, p1##_type, \
p2##_type>::gmock_Impl<F>::gmock_PerformImpl(\
...
...
@@ -821,16 +753,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -852,10 +776,7 @@
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP4<p0##_type, p1##_type, p2##_type, \
p3##_type>::gmock_Impl<F>::gmock_PerformImpl(\
...
...
@@ -888,16 +809,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -920,10 +833,7 @@
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \
p4##_type>::gmock_Impl<F>::gmock_PerformImpl(\
...
...
@@ -957,16 +867,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -990,10 +892,7 @@
template <typename p0##_type, typename p1##_type, typename p2##_type, \
typename p3##_type, typename p4##_type, typename p5##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
p5##_type>::gmock_Impl<F>::gmock_PerformImpl(\
...
...
@@ -1029,16 +928,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -1066,10 +957,7 @@
typename p3##_type, typename p4##_type, typename p5##_type, \
typename p6##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
p5##_type, p6##_type>::gmock_Impl<F>::gmock_PerformImpl(\
...
...
@@ -1107,16 +995,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -1146,10 +1026,7 @@
typename p3##_type, typename p4##_type, typename p5##_type, \
typename p6##_type, typename p7##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
p5##_type, p6##_type, \
...
...
@@ -1190,16 +1067,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -1231,10 +1100,7 @@
typename p3##_type, typename p4##_type, typename p5##_type, \
typename p6##_type, typename p7##_type, typename p8##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
p5##_type, p6##_type, p7##_type, \
...
...
@@ -1277,16 +1143,8 @@
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
return_type gmock_PerformImpl(const args_type& args, \
const arg0_type& arg0, const arg1_type& arg1, \
const arg2_type& arg2, const arg3_type& arg3, \
const arg4_type& arg4, const arg5_type& arg5, \
const arg6_type& arg6, const arg7_type& arg7, \
const arg8_type& arg8, const arg9_type& arg9) const;\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
p0##_type p0;\
p1##_type p1;\
p2##_type p2;\
...
...
@@ -1321,10 +1179,7 @@
typename p6##_type, typename p7##_type, typename p8##_type, \
typename p9##_type>\
template <typename F>\
template <typename arg0_type, typename arg1_type, typename arg2_type, \
typename arg3_type, typename arg4_type, typename arg5_type, \
typename arg6_type, typename arg7_type, typename arg8_type, \
typename arg9_type>\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
p5##_type, p6##_type, p7##_type, p8##_type, \
...
...
googlemock/include/gmock/gmock-generated-actions.h.pump
View file @
7a8591e6
...
...
@@ -147,12 +147,6 @@ $$}} This meta comment fixes auto-indentation in editors.
$
range
i
0.
.
n
$
range
k
0.
.
n
-
1
// An internal macro needed for implementing ACTION*().
#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\
const args_type& args GTEST_ATTRIBUTE_UNUSED_
$
for
k
[[,
\
const
arg
$
k
[[]]
_type
&
arg
$
k
GTEST_ATTRIBUTE_UNUSED_
]]
// Sometimes you want to give an action explicit template parameters
// that cannot be inferred from its value parameters. ACTION() and
...
...
@@ -351,9 +345,8 @@ $range k 0..n-1
return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
Perform(this, args);\
}\
template <$for k, [[typename arg$k[[]]_type]]>\
return_type gmock_PerformImpl(const args_type& args[[]]
$
for
k
[[,
const
arg
$
k
[[]]
_type
&
arg
$
k
]])
const
;
\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
return_type gmock_PerformImpl(GMOCK_ACTION_ARG_TYPES_AND_NAMES_) const;\
GMOCK_INTERNAL_DEFN_##value_params\
private:\
GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
...
...
@@ -380,10 +373,7 @@ $for k [[, const arg$k[[]]_type& arg$k]]) const;\
template <GMOCK_INTERNAL_DECL_##template_params\
GMOCK_INTERNAL_DECL_TYPE_##value_params>\
template <typename F>\
template
<
typename
arg0_type
,
typename
arg1_type
,
typename
arg2_type
,
\
typename
arg3_type
,
typename
arg4_type
,
typename
arg5_type
,
\
typename
arg6_type
,
typename
arg7_type
,
typename
arg8_type
,
\
typename
arg9_type
>
\
template <GMOCK_ACTION_TEMPLATE_ARGS_NAMES_>\
typename ::testing::internal::Function<F>::Result\
GMOCK_ACTION_CLASS_(name, value_params)<\
GMOCK_INTERNAL_LIST_##template_params\
...
...
@@ -439,9 +429,8 @@ $var macro_name = [[$if i==0 [[ACTION]] $elif i==1 [[ACTION_P]]
return
::
testing
::
internal
::
ActionHelper
<
return_type
,
gmock_Impl
>::
\
Perform
(
this
,
args
);
\
}
\
template
<
$
typename_arg_types
>
\
return_type
gmock_PerformImpl
(
const
args_type
&
args
,
[[]]
$
arg_types_and_names
)
const
;
\$
param_field_decls
template
<
GMOCK_ACTION_TEMPLATE_ARGS_NAMES_
>
\
return_type
gmock_PerformImpl
(
GMOCK_ACTION_ARG_TYPES_AND_NAMES_
)
const
;
\$
param_field_decls
private
:
\
GTEST_DISALLOW_ASSIGN_
(
gmock_Impl
);
\
};
\
...
...
@@ -452,7 +441,7 @@ $arg_types_and_names) const;\$param_field_decls
return
$
class_name
$
param_types
(
$
params
);
\
}
\$
template
template
<
typename
F
>
\
template
<
$
typename_arg_types
>
\
template
<
GMOCK_ACTION_TEMPLATE_ARGS_NAMES_
>
\
typename
::
testing
::
internal
::
Function
<
F
>::
Result
\
$
class_name
$
param_types
::
gmock_Impl
<
F
>::
gmock_PerformImpl
(
\
GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_
)
const
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment