38#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
39#define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_
41#include "gmock/gmock-actions.h"
42#include "gmock/internal/gmock-port.h"
50template <
typename Result,
typename ArgumentTuple>
56 template <
typename Function>
61 template <
class Class,
typename MethodPtr>
64 const ::std::tr1::tuple<>&) {
65 return (obj_ptr->*method_ptr)();
69template <
typename R,
typename A1>
72 template <
typename Function>
74 using ::std::tr1::get;
75 return function(get<0>(args));
78 template <
class Class,
typename MethodPtr>
81 const ::std::tr1::tuple<A1>& args) {
82 using ::std::tr1::get;
83 return (obj_ptr->*method_ptr)(get<0>(args));
87template <
typename R,
typename A1,
typename A2>
90 template <
typename Function>
92 using ::std::tr1::get;
93 return function(get<0>(args), get<1>(args));
96 template <
class Class,
typename MethodPtr>
99 const ::std::tr1::tuple<A1, A2>& args) {
100 using ::std::tr1::get;
101 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args));
105template <
typename R,
typename A1,
typename A2,
typename A3>
108 template <
typename Function>
111 using ::std::tr1::get;
112 return function(get<0>(args), get<1>(args), get<2>(args));
115 template <
class Class,
typename MethodPtr>
117 MethodPtr method_ptr,
118 const ::std::tr1::tuple<A1, A2, A3>& args) {
119 using ::std::tr1::get;
120 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args));
124template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4>
127 template <
typename Function>
130 using ::std::tr1::get;
131 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args));
134 template <
class Class,
typename MethodPtr>
136 MethodPtr method_ptr,
137 const ::std::tr1::tuple<A1, A2, A3, A4>& args) {
138 using ::std::tr1::get;
139 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
144template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
148 template <
typename Function>
151 using ::std::tr1::get;
152 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
156 template <
class Class,
typename MethodPtr>
158 MethodPtr method_ptr,
159 const ::std::tr1::tuple<A1, A2, A3, A4, A5>& args) {
160 using ::std::tr1::get;
161 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
162 get<3>(args), get<4>(args));
166template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
167 typename A5,
typename A6>
170 template <
typename Function>
173 using ::std::tr1::get;
174 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
175 get<4>(args), get<5>(args));
178 template <
class Class,
typename MethodPtr>
180 MethodPtr method_ptr,
181 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6>& args) {
182 using ::std::tr1::get;
183 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
184 get<3>(args), get<4>(args), get<5>(args));
188template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
189 typename A5,
typename A6,
typename A7>
192 template <
typename Function>
195 using ::std::tr1::get;
196 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
197 get<4>(args), get<5>(args), get<6>(args));
200 template <
class Class,
typename MethodPtr>
202 MethodPtr method_ptr,
203 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6,
205 using ::std::tr1::get;
206 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
207 get<3>(args), get<4>(args), get<5>(args), get<6>(args));
211template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
212 typename A5,
typename A6,
typename A7,
typename A8>
213class InvokeHelper<R, ::
std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8> > {
215 template <
typename Function>
217 A5, A6, A7, A8>& args) {
218 using ::std::tr1::get;
219 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
220 get<4>(args), get<5>(args), get<6>(args), get<7>(args));
223 template <
class Class,
typename MethodPtr>
225 MethodPtr method_ptr,
226 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7,
228 using ::std::tr1::get;
229 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
230 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args));
234template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
235 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
236class InvokeHelper<R, ::
std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9> > {
238 template <
typename Function>
240 A5, A6, A7, A8, A9>& args) {
241 using ::std::tr1::get;
242 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
243 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args));
246 template <
class Class,
typename MethodPtr>
248 MethodPtr method_ptr,
249 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8,
251 using ::std::tr1::get;
252 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
253 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args),
258template <
typename R,
typename A1,
typename A2,
typename A3,
typename A4,
259 typename A5,
typename A6,
typename A7,
typename A8,
typename A9,
261class InvokeHelper<R, ::
std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9,
264 template <
typename Function>
266 A5, A6, A7, A8, A9, A10>& args) {
267 using ::std::tr1::get;
268 return function(get<0>(args), get<1>(args), get<2>(args), get<3>(args),
269 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
273 template <
class Class,
typename MethodPtr>
275 MethodPtr method_ptr,
276 const ::std::tr1::tuple<A1, A2, A3, A4, A5, A6, A7, A8,
278 using ::std::tr1::get;
279 return (obj_ptr->*method_ptr)(get<0>(args), get<1>(args), get<2>(args),
280 get<3>(args), get<4>(args), get<5>(args), get<6>(args), get<7>(args),
281 get<8>(args), get<9>(args));
296class CallableHelper {
299 template <
typename Function>
315 template <
typename Function,
typename A1>
319 template <
typename Function,
typename A1,
typename A2>
321 return function(a1, a2);
325 template <
typename Function,
typename A1,
typename A2,
typename A3>
327 return function(a1, a2, a3);
331 template <
typename Function,
typename A1,
typename A2,
typename A3,
334 return function(a1, a2, a3, a4);
338 template <
typename Function,
typename A1,
typename A2,
typename A3,
339 typename A4,
typename A5>
341 return function(a1, a2, a3, a4, a5);
345 template <
typename Function,
typename A1,
typename A2,
typename A3,
346 typename A4,
typename A5,
typename A6>
347 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) {
348 return function(a1, a2, a3, a4, a5, a6);
352 template <
typename Function,
typename A1,
typename A2,
typename A3,
353 typename A4,
typename A5,
typename A6,
typename A7>
354 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
356 return function(a1, a2, a3, a4, a5, a6, a7);
360 template <
typename Function,
typename A1,
typename A2,
typename A3,
361 typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
362 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
364 return function(a1, a2, a3, a4, a5, a6, a7, a8);
368 template <
typename Function,
typename A1,
typename A2,
typename A3,
369 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
371 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
372 A7 a7, A8 a8, A9 a9) {
373 return function(a1, a2, a3, a4, a5, a6, a7, a8, a9);
377 template <
typename Function,
typename A1,
typename A2,
typename A3,
378 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
379 typename A9,
typename A10>
380 static R
Call(
Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6,
381 A7 a7, A8 a8, A9 a9, A10 a10) {
382 return function(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
388#define GMOCK_FIELD_(Tuple, N) \
389 typename ::std::tr1::tuple_element<N, Tuple>::type
409template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
410 int k4,
int k5,
int k6,
int k7,
int k8,
int k9,
int k10>
421 using ::std::tr1::get;
422 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
423 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
424 get<k8>(args), get<k9>(args), get<k10>(args));
428template <
typename Result,
typename ArgumentTuple>
429class SelectArgs<Result, ArgumentTuple,
430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> {
435 using ::std::tr1::get;
440template <
typename Result,
typename ArgumentTuple,
int k1>
441class SelectArgs<Result, ArgumentTuple,
442 k1, -1, -1, -1, -1, -1, -1, -1, -1, -1> {
447 using ::std::tr1::get;
452template <
typename Result,
typename ArgumentTuple,
int k1,
int k2>
453class SelectArgs<Result, ArgumentTuple,
454 k1, k2, -1, -1, -1, -1, -1, -1, -1, -1> {
460 using ::std::tr1::get;
465template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3>
466class SelectArgs<Result, ArgumentTuple,
467 k1, k2, k3, -1, -1, -1, -1, -1, -1, -1> {
473 using ::std::tr1::get;
474 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args));
478template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
480class SelectArgs<Result, ArgumentTuple,
481 k1, k2, k3, k4, -1, -1, -1, -1, -1, -1> {
488 using ::std::tr1::get;
489 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
494template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
496class SelectArgs<Result, ArgumentTuple,
497 k1, k2, k3, k4, k5, -1, -1, -1, -1, -1> {
504 using ::std::tr1::get;
505 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
506 get<k4>(args), get<k5>(args));
510template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
511 int k4,
int k5,
int k6>
512class SelectArgs<Result, ArgumentTuple,
513 k1, k2, k3, k4, k5, k6, -1, -1, -1, -1> {
521 using ::std::tr1::get;
522 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
523 get<k4>(args), get<k5>(args), get<k6>(args));
527template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
528 int k4,
int k5,
int k6,
int k7>
529class SelectArgs<Result, ArgumentTuple,
530 k1, k2, k3, k4, k5, k6, k7, -1, -1, -1> {
538 using ::std::tr1::get;
539 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
540 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args));
544template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
545 int k4,
int k5,
int k6,
int k7,
int k8>
546class SelectArgs<Result, ArgumentTuple,
547 k1, k2, k3, k4, k5, k6, k7, k8, -1, -1> {
556 using ::std::tr1::get;
557 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
558 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
563template <
typename Result,
typename ArgumentTuple,
int k1,
int k2,
int k3,
564 int k4,
int k5,
int k6,
int k7,
int k8,
int k9>
565class SelectArgs<Result, ArgumentTuple,
566 k1, k2, k3, k4, k5, k6, k7, k8, k9, -1> {
575 using ::std::tr1::get;
576 return SelectedArgs(get<k1>(args), get<k2>(args), get<k3>(args),
577 get<k4>(args), get<k5>(args), get<k6>(args), get<k7>(args),
578 get<k8>(args), get<k9>(args));
585template <
typename InnerAction,
int k1 = -1,
int k2 = -1,
int k3 = -1,
586 int k4 = -1,
int k5 = -1,
int k6 = -1,
int k7 = -1,
int k8 = -1,
587 int k9 = -1,
int k10 = -1>
588class WithArgsAction {
592 template <
typename F>
596 template <
typename F>
602 explicit Impl(
const InnerAction& action) : action_(action) {}
606 k5, k6, k7, k8, k9, k10>::Select(args));
611 k1, k2, k3, k4, k5, k6, k7, k8, k9, k10>::type InnerFunctionType;
613 Action<InnerFunctionType> action_;
616 const InnerAction action_;
638template <
typename Result,
class Impl>
642 using ::std::tr1::get;
643 return impl->template gmock_PerformImpl<>(args,
ExcessiveArg(),
649 template <
typename A0>
651 using ::std::tr1::get;
652 return impl->template gmock_PerformImpl<A0>(args, get<0>(args),
658 template <
typename A0,
typename A1>
660 using ::std::tr1::get;
661 return impl->template gmock_PerformImpl<A0, A1>(args, get<0>(args),
667 template <
typename A0,
typename A1,
typename A2>
668 static Result Perform(Impl* impl, const ::std::tr1::tuple<A0, A1, A2>& args) {
669 using ::std::tr1::get;
670 return impl->template gmock_PerformImpl<A0, A1, A2>(args, get<0>(args),
676 template <
typename A0,
typename A1,
typename A2,
typename A3>
679 using ::std::tr1::get;
680 return impl->template gmock_PerformImpl<A0, A1, A2, A3>(args, get<0>(args),
681 get<1>(args), get<2>(args), get<3>(args),
ExcessiveArg(),
686 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
689 using ::std::tr1::get;
690 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4>(args,
691 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
696 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
698 static Result Perform(Impl* impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
700 using ::std::tr1::get;
701 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5>(args,
702 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
707 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
708 typename A5,
typename A6>
709 static Result Perform(Impl* impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
711 using ::std::tr1::get;
712 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6>(args,
713 get<0>(args), get<1>(args), get<2>(args), get<3>(args), get<4>(args),
718 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
719 typename A5,
typename A6,
typename A7>
720 static Result Perform(Impl* impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
722 using ::std::tr1::get;
723 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6,
724 A7>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
725 get<4>(args), get<5>(args), get<6>(args), get<7>(args),
ExcessiveArg(),
729 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
730 typename A5,
typename A6,
typename A7,
typename A8>
731 static Result Perform(Impl* impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
732 A5, A6, A7, A8>& args) {
733 using ::std::tr1::get;
734 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7,
735 A8>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
736 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
740 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
741 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
742 static Result Perform(Impl* impl, const ::std::tr1::tuple<A0, A1, A2, A3, A4,
743 A5, A6, A7, A8, A9>& args) {
744 using ::std::tr1::get;
745 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7, A8,
746 A9>(args, get<0>(args), get<1>(args), get<2>(args), get<3>(args),
747 get<4>(args), get<5>(args), get<6>(args), get<7>(args), get<8>(args),
761template <
int k1,
typename InnerAction>
762inline internal::WithArgsAction<InnerAction, k1>
763WithArgs(
const InnerAction& action) {
764 return internal::WithArgsAction<InnerAction, k1>(action);
767template <
int k1,
int k2,
typename InnerAction>
769WithArgs(
const InnerAction& action) {
773template <
int k1,
int k2,
int k3,
typename InnerAction>
775WithArgs(
const InnerAction& action) {
779template <
int k1,
int k2,
int k3,
int k4,
typename InnerAction>
781WithArgs(
const InnerAction& action) {
785template <
int k1,
int k2,
int k3,
int k4,
int k5,
typename InnerAction>
787WithArgs(
const InnerAction& action) {
791template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
typename InnerAction>
793WithArgs(
const InnerAction& action) {
797template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
798 typename InnerAction>
800WithArgs(
const InnerAction& action) {
805template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
806 typename InnerAction>
808WithArgs(
const InnerAction& action) {
813template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
814 int k9,
typename InnerAction>
816WithArgs(
const InnerAction& action) {
821template <
int k1,
int k2,
int k3,
int k4,
int k5,
int k6,
int k7,
int k8,
822 int k9,
int k10,
typename InnerAction>
825WithArgs(
const InnerAction& action) {
832template <
typename Action1,
typename Action2>
834DoAll(Action1 a1, Action2 a2) {
838template <
typename Action1,
typename Action2,
typename Action3>
841DoAll(Action1 a1, Action2 a2, Action3 a3) {
845template <
typename Action1,
typename Action2,
typename Action3,
849DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4) {
853template <
typename Action1,
typename Action2,
typename Action3,
854 typename Action4,
typename Action5>
858DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5) {
862template <
typename Action1,
typename Action2,
typename Action3,
863 typename Action4,
typename Action5,
typename Action6>
867DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6) {
871template <
typename Action1,
typename Action2,
typename Action3,
872 typename Action4,
typename Action5,
typename Action6,
typename Action7>
877DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
879 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7));
882template <
typename Action1,
typename Action2,
typename Action3,
883 typename Action4,
typename Action5,
typename Action6,
typename Action7,
889DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
890 Action7 a7, Action8 a8) {
891 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8));
894template <
typename Action1,
typename Action2,
typename Action3,
895 typename Action4,
typename Action5,
typename Action6,
typename Action7,
896 typename Action8,
typename Action9>
901 Action9> > > > > > > >
902DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
903 Action7 a7, Action8 a8, Action9 a9) {
904 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8, a9));
907template <
typename Action1,
typename Action2,
typename Action3,
908 typename Action4,
typename Action5,
typename Action6,
typename Action7,
909 typename Action8,
typename Action9,
typename Action10>
915DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,
916 Action7 a7, Action8 a8, Action9 a9, Action10 a10) {
917 return DoAll(a1,
DoAll(a2, a3, a4, a5, a6, a7, a8, a9, a10));
1019#define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\
1020 const args_type& args GTEST_ATTRIBUTE_UNUSED_, \
1021 arg0_type arg0 GTEST_ATTRIBUTE_UNUSED_, \
1022 arg1_type arg1 GTEST_ATTRIBUTE_UNUSED_, \
1023 arg2_type arg2 GTEST_ATTRIBUTE_UNUSED_, \
1024 arg3_type arg3 GTEST_ATTRIBUTE_UNUSED_, \
1025 arg4_type arg4 GTEST_ATTRIBUTE_UNUSED_, \
1026 arg5_type arg5 GTEST_ATTRIBUTE_UNUSED_, \
1027 arg6_type arg6 GTEST_ATTRIBUTE_UNUSED_, \
1028 arg7_type arg7 GTEST_ATTRIBUTE_UNUSED_, \
1029 arg8_type arg8 GTEST_ATTRIBUTE_UNUSED_, \
1030 arg9_type arg9 GTEST_ATTRIBUTE_UNUSED_
1114#define GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(kind0, name0) kind0 name0
1115#define GMOCK_INTERNAL_DECL_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \
1116 name1) kind0 name0, kind1 name1
1117#define GMOCK_INTERNAL_DECL_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1118 kind2, name2) kind0 name0, kind1 name1, kind2 name2
1119#define GMOCK_INTERNAL_DECL_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1120 kind2, name2, kind3, name3) kind0 name0, kind1 name1, kind2 name2, \
1122#define GMOCK_INTERNAL_DECL_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1123 kind2, name2, kind3, name3, kind4, name4) kind0 name0, kind1 name1, \
1124 kind2 name2, kind3 name3, kind4 name4
1125#define GMOCK_INTERNAL_DECL_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1126 kind2, name2, kind3, name3, kind4, name4, kind5, name5) kind0 name0, \
1127 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5
1128#define GMOCK_INTERNAL_DECL_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1129 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
1130 name6) kind0 name0, kind1 name1, kind2 name2, kind3 name3, kind4 name4, \
1131 kind5 name5, kind6 name6
1132#define GMOCK_INTERNAL_DECL_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1133 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
1134 kind7, name7) kind0 name0, kind1 name1, kind2 name2, kind3 name3, \
1135 kind4 name4, kind5 name5, kind6 name6, kind7 name7
1136#define GMOCK_INTERNAL_DECL_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1137 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
1138 kind7, name7, kind8, name8) kind0 name0, kind1 name1, kind2 name2, \
1139 kind3 name3, kind4 name4, kind5 name5, kind6 name6, kind7 name7, \
1141#define GMOCK_INTERNAL_DECL_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \
1142 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
1143 name6, kind7, name7, kind8, name8, kind9, name9) kind0 name0, \
1144 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5, \
1145 kind6 name6, kind7 name7, kind8 name8, kind9 name9
1148#define GMOCK_INTERNAL_LIST_HAS_1_TEMPLATE_PARAMS(kind0, name0) name0
1149#define GMOCK_INTERNAL_LIST_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \
1151#define GMOCK_INTERNAL_LIST_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1152 kind2, name2) name0, name1, name2
1153#define GMOCK_INTERNAL_LIST_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1154 kind2, name2, kind3, name3) name0, name1, name2, name3
1155#define GMOCK_INTERNAL_LIST_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1156 kind2, name2, kind3, name3, kind4, name4) name0, name1, name2, name3, \
1158#define GMOCK_INTERNAL_LIST_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1159 kind2, name2, kind3, name3, kind4, name4, kind5, name5) name0, name1, \
1160 name2, name3, name4, name5
1161#define GMOCK_INTERNAL_LIST_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1162 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
1163 name6) name0, name1, name2, name3, name4, name5, name6
1164#define GMOCK_INTERNAL_LIST_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1165 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
1166 kind7, name7) name0, name1, name2, name3, name4, name5, name6, name7
1167#define GMOCK_INTERNAL_LIST_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \
1168 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \
1169 kind7, name7, kind8, name8) name0, name1, name2, name3, name4, name5, \
1171#define GMOCK_INTERNAL_LIST_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \
1172 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \
1173 name6, kind7, name7, kind8, name8, kind9, name9) name0, name1, name2, \
1174 name3, name4, name5, name6, name7, name8, name9
1177#define GMOCK_INTERNAL_DECL_TYPE_AND_0_VALUE_PARAMS()
1178#define GMOCK_INTERNAL_DECL_TYPE_AND_1_VALUE_PARAMS(p0) , typename p0##_type
1179#define GMOCK_INTERNAL_DECL_TYPE_AND_2_VALUE_PARAMS(p0, p1) , \
1180 typename p0##_type, typename p1##_type
1181#define GMOCK_INTERNAL_DECL_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , \
1182 typename p0##_type, typename p1##_type, typename p2##_type
1183#define GMOCK_INTERNAL_DECL_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \
1184 typename p0##_type, typename p1##_type, typename p2##_type, \
1186#define GMOCK_INTERNAL_DECL_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \
1187 typename p0##_type, typename p1##_type, typename p2##_type, \
1188 typename p3##_type, typename p4##_type
1189#define GMOCK_INTERNAL_DECL_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \
1190 typename p0##_type, typename p1##_type, typename p2##_type, \
1191 typename p3##_type, typename p4##_type, typename p5##_type
1192#define GMOCK_INTERNAL_DECL_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1193 p6) , typename p0##_type, typename p1##_type, typename p2##_type, \
1194 typename p3##_type, typename p4##_type, typename p5##_type, \
1196#define GMOCK_INTERNAL_DECL_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1197 p6, p7) , typename p0##_type, typename p1##_type, typename p2##_type, \
1198 typename p3##_type, typename p4##_type, typename p5##_type, \
1199 typename p6##_type, typename p7##_type
1200#define GMOCK_INTERNAL_DECL_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1201 p6, p7, p8) , typename p0##_type, typename p1##_type, typename p2##_type, \
1202 typename p3##_type, typename p4##_type, typename p5##_type, \
1203 typename p6##_type, typename p7##_type, typename p8##_type
1204#define GMOCK_INTERNAL_DECL_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1205 p6, p7, p8, p9) , typename p0##_type, typename p1##_type, \
1206 typename p2##_type, typename p3##_type, typename p4##_type, \
1207 typename p5##_type, typename p6##_type, typename p7##_type, \
1208 typename p8##_type, typename p9##_type
1211#define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\
1213#define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\
1214 (p0##_type gmock_p0) : p0(gmock_p0)
1215#define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\
1216 (p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), p1(gmock_p1)
1217#define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\
1218 (p0##_type gmock_p0, p1##_type gmock_p1, \
1219 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2)
1220#define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\
1221 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1222 p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1224#define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\
1225 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1226 p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), \
1227 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4)
1228#define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\
1229 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1230 p3##_type gmock_p3, p4##_type gmock_p4, \
1231 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1232 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5)
1233#define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\
1234 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1235 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1236 p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1237 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6)
1238#define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\
1239 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1240 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1241 p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), \
1242 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
1244#define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1246 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1247 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1248 p6##_type gmock_p6, p7##_type gmock_p7, \
1249 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1250 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \
1252#define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1254 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1255 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1256 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
1257 p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1258 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \
1259 p8(gmock_p8), p9(gmock_p9)
1262#define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS()
1263#define GMOCK_INTERNAL_DEFN_AND_1_VALUE_PARAMS(p0) p0##_type p0;
1264#define GMOCK_INTERNAL_DEFN_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0; \
1266#define GMOCK_INTERNAL_DEFN_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0; \
1267 p1##_type p1; p2##_type p2;
1268#define GMOCK_INTERNAL_DEFN_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0; \
1269 p1##_type p1; p2##_type p2; p3##_type p3;
1270#define GMOCK_INTERNAL_DEFN_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \
1271 p4) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4;
1272#define GMOCK_INTERNAL_DEFN_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \
1273 p5) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \
1275#define GMOCK_INTERNAL_DEFN_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1276 p6) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \
1277 p5##_type p5; p6##_type p6;
1278#define GMOCK_INTERNAL_DEFN_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1279 p7) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \
1280 p5##_type p5; p6##_type p6; p7##_type p7;
1281#define GMOCK_INTERNAL_DEFN_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1282 p7, p8) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \
1283 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8;
1284#define GMOCK_INTERNAL_DEFN_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1285 p7, p8, p9) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \
1286 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; \
1290#define GMOCK_INTERNAL_LIST_AND_0_VALUE_PARAMS()
1291#define GMOCK_INTERNAL_LIST_AND_1_VALUE_PARAMS(p0) p0
1292#define GMOCK_INTERNAL_LIST_AND_2_VALUE_PARAMS(p0, p1) p0, p1
1293#define GMOCK_INTERNAL_LIST_AND_3_VALUE_PARAMS(p0, p1, p2) p0, p1, p2
1294#define GMOCK_INTERNAL_LIST_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0, p1, p2, p3
1295#define GMOCK_INTERNAL_LIST_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) p0, p1, \
1297#define GMOCK_INTERNAL_LIST_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) p0, \
1299#define GMOCK_INTERNAL_LIST_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1300 p6) p0, p1, p2, p3, p4, p5, p6
1301#define GMOCK_INTERNAL_LIST_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1302 p7) p0, p1, p2, p3, p4, p5, p6, p7
1303#define GMOCK_INTERNAL_LIST_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1304 p7, p8) p0, p1, p2, p3, p4, p5, p6, p7, p8
1305#define GMOCK_INTERNAL_LIST_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1306 p7, p8, p9) p0, p1, p2, p3, p4, p5, p6, p7, p8, p9
1309#define GMOCK_INTERNAL_LIST_TYPE_AND_0_VALUE_PARAMS()
1310#define GMOCK_INTERNAL_LIST_TYPE_AND_1_VALUE_PARAMS(p0) , p0##_type
1311#define GMOCK_INTERNAL_LIST_TYPE_AND_2_VALUE_PARAMS(p0, p1) , p0##_type, \
1313#define GMOCK_INTERNAL_LIST_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , p0##_type, \
1314 p1##_type, p2##_type
1315#define GMOCK_INTERNAL_LIST_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \
1316 p0##_type, p1##_type, p2##_type, p3##_type
1317#define GMOCK_INTERNAL_LIST_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \
1318 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type
1319#define GMOCK_INTERNAL_LIST_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \
1320 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type
1321#define GMOCK_INTERNAL_LIST_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1322 p6) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, \
1324#define GMOCK_INTERNAL_LIST_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1325 p6, p7) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1326 p5##_type, p6##_type, p7##_type
1327#define GMOCK_INTERNAL_LIST_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1328 p6, p7, p8) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1329 p5##_type, p6##_type, p7##_type, p8##_type
1330#define GMOCK_INTERNAL_LIST_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1331 p6, p7, p8, p9) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1332 p5##_type, p6##_type, p7##_type, p8##_type, p9##_type
1335#define GMOCK_INTERNAL_DECL_AND_0_VALUE_PARAMS()
1336#define GMOCK_INTERNAL_DECL_AND_1_VALUE_PARAMS(p0) p0##_type p0
1337#define GMOCK_INTERNAL_DECL_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0, \
1339#define GMOCK_INTERNAL_DECL_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0, \
1340 p1##_type p1, p2##_type p2
1341#define GMOCK_INTERNAL_DECL_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0, \
1342 p1##_type p1, p2##_type p2, p3##_type p3
1343#define GMOCK_INTERNAL_DECL_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \
1344 p4) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4
1345#define GMOCK_INTERNAL_DECL_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \
1346 p5) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \
1348#define GMOCK_INTERNAL_DECL_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \
1349 p6) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \
1350 p5##_type p5, p6##_type p6
1351#define GMOCK_INTERNAL_DECL_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1352 p7) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \
1353 p5##_type p5, p6##_type p6, p7##_type p7
1354#define GMOCK_INTERNAL_DECL_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1355 p7, p8) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
1356 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8
1357#define GMOCK_INTERNAL_DECL_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1358 p7, p8, p9) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
1359 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \
1363#define GMOCK_INTERNAL_COUNT_AND_0_VALUE_PARAMS()
1364#define GMOCK_INTERNAL_COUNT_AND_1_VALUE_PARAMS(p0) P
1365#define GMOCK_INTERNAL_COUNT_AND_2_VALUE_PARAMS(p0, p1) P2
1366#define GMOCK_INTERNAL_COUNT_AND_3_VALUE_PARAMS(p0, p1, p2) P3
1367#define GMOCK_INTERNAL_COUNT_AND_4_VALUE_PARAMS(p0, p1, p2, p3) P4
1368#define GMOCK_INTERNAL_COUNT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) P5
1369#define GMOCK_INTERNAL_COUNT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) P6
1370#define GMOCK_INTERNAL_COUNT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6) P7
1371#define GMOCK_INTERNAL_COUNT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1373#define GMOCK_INTERNAL_COUNT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1375#define GMOCK_INTERNAL_COUNT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \
1379#define GMOCK_ACTION_CLASS_(name, value_params)\
1380 GTEST_CONCAT_TOKEN_(name##Action, GMOCK_INTERNAL_COUNT_##value_params)
1382#define ACTION_TEMPLATE(name, template_params, value_params)\
1383 template <GMOCK_INTERNAL_DECL_##template_params\
1384 GMOCK_INTERNAL_DECL_TYPE_##value_params>\
1385 class GMOCK_ACTION_CLASS_(name, value_params) {\
1387 GMOCK_ACTION_CLASS_(name, value_params)\
1388 GMOCK_INTERNAL_INIT_##value_params {}\
1389 template <typename F>\
1390 class gmock_Impl : public ::testing::ActionInterface<F> {\
1392 typedef F function_type;\
1393 typedef typename ::testing::internal::Function<F>::Result return_type;\
1394 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1396 explicit gmock_Impl GMOCK_INTERNAL_INIT_##value_params {}\
1397 virtual return_type Perform(const args_type& args) {\
1398 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1399 Perform(this, args);\
1401 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1402 typename arg3_type, typename arg4_type, typename arg5_type, \
1403 typename arg6_type, typename arg7_type, typename arg8_type, \
1404 typename arg9_type>\
1405 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1406 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1407 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1408 arg9_type arg9) const;\
1409 GMOCK_INTERNAL_DEFN_##value_params\
1411 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1413 template <typename F> operator ::testing::Action<F>() const {\
1414 return ::testing::Action<F>(\
1415 new gmock_Impl<F>(GMOCK_INTERNAL_LIST_##value_params));\
1417 GMOCK_INTERNAL_DEFN_##value_params\
1419 GTEST_DISALLOW_ASSIGN_(GMOCK_ACTION_CLASS_(name, value_params));\
1421 template <GMOCK_INTERNAL_DECL_##template_params\
1422 GMOCK_INTERNAL_DECL_TYPE_##value_params>\
1423 inline GMOCK_ACTION_CLASS_(name, value_params)<\
1424 GMOCK_INTERNAL_LIST_##template_params\
1425 GMOCK_INTERNAL_LIST_TYPE_##value_params> name(\
1426 GMOCK_INTERNAL_DECL_##value_params) {\
1427 return GMOCK_ACTION_CLASS_(name, value_params)<\
1428 GMOCK_INTERNAL_LIST_##template_params\
1429 GMOCK_INTERNAL_LIST_TYPE_##value_params>(\
1430 GMOCK_INTERNAL_LIST_##value_params);\
1432 template <GMOCK_INTERNAL_DECL_##template_params\
1433 GMOCK_INTERNAL_DECL_TYPE_##value_params>\
1434 template <typename F>\
1435 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1436 typename arg3_type, typename arg4_type, typename arg5_type, \
1437 typename arg6_type, typename arg7_type, typename arg8_type, \
1438 typename arg9_type>\
1439 typename ::testing::internal::Function<F>::Result\
1440 GMOCK_ACTION_CLASS_(name, value_params)<\
1441 GMOCK_INTERNAL_LIST_##template_params\
1442 GMOCK_INTERNAL_LIST_TYPE_##value_params>::gmock_Impl<F>::\
1444 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1446#define ACTION(name)\
1447 class name##Action {\
1450 template <typename F>\
1451 class gmock_Impl : public ::testing::ActionInterface<F> {\
1453 typedef F function_type;\
1454 typedef typename ::testing::internal::Function<F>::Result return_type;\
1455 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1458 virtual return_type Perform(const args_type& args) {\
1459 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1460 Perform(this, args);\
1462 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1463 typename arg3_type, typename arg4_type, typename arg5_type, \
1464 typename arg6_type, typename arg7_type, typename arg8_type, \
1465 typename arg9_type>\
1466 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1467 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1468 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1469 arg9_type arg9) const;\
1471 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1473 template <typename F> operator ::testing::Action<F>() const {\
1474 return ::testing::Action<F>(new gmock_Impl<F>());\
1477 GTEST_DISALLOW_ASSIGN_(name##Action);\
1479 inline name##Action name() {\
1480 return name##Action();\
1482 template <typename F>\
1483 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1484 typename arg3_type, typename arg4_type, typename arg5_type, \
1485 typename arg6_type, typename arg7_type, typename arg8_type, \
1486 typename arg9_type>\
1487 typename ::testing::internal::Function<F>::Result\
1488 name##Action::gmock_Impl<F>::gmock_PerformImpl(\
1489 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1491#define ACTION_P(name, p0)\
1492 template <typename p0##_type>\
1493 class name##ActionP {\
1495 name##ActionP(p0##_type gmock_p0) : p0(gmock_p0) {}\
1496 template <typename F>\
1497 class gmock_Impl : public ::testing::ActionInterface<F> {\
1499 typedef F function_type;\
1500 typedef typename ::testing::internal::Function<F>::Result return_type;\
1501 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1503 explicit gmock_Impl(p0##_type gmock_p0) : p0(gmock_p0) {}\
1504 virtual return_type Perform(const args_type& args) {\
1505 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1506 Perform(this, args);\
1508 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1509 typename arg3_type, typename arg4_type, typename arg5_type, \
1510 typename arg6_type, typename arg7_type, typename arg8_type, \
1511 typename arg9_type>\
1512 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1513 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1514 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1515 arg9_type arg9) const;\
1518 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1520 template <typename F> operator ::testing::Action<F>() const {\
1521 return ::testing::Action<F>(new gmock_Impl<F>(p0));\
1525 GTEST_DISALLOW_ASSIGN_(name##ActionP);\
1527 template <typename p0##_type>\
1528 inline name##ActionP<p0##_type> name(p0##_type p0) {\
1529 return name##ActionP<p0##_type>(p0);\
1531 template <typename p0##_type>\
1532 template <typename F>\
1533 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1534 typename arg3_type, typename arg4_type, typename arg5_type, \
1535 typename arg6_type, typename arg7_type, typename arg8_type, \
1536 typename arg9_type>\
1537 typename ::testing::internal::Function<F>::Result\
1538 name##ActionP<p0##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1539 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1541#define ACTION_P2(name, p0, p1)\
1542 template <typename p0##_type, typename p1##_type>\
1543 class name##ActionP2 {\
1545 name##ActionP2(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \
1547 template <typename F>\
1548 class gmock_Impl : public ::testing::ActionInterface<F> {\
1550 typedef F function_type;\
1551 typedef typename ::testing::internal::Function<F>::Result return_type;\
1552 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1554 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \
1556 virtual return_type Perform(const args_type& args) {\
1557 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1558 Perform(this, args);\
1560 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1561 typename arg3_type, typename arg4_type, typename arg5_type, \
1562 typename arg6_type, typename arg7_type, typename arg8_type, \
1563 typename arg9_type>\
1564 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1565 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1566 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1567 arg9_type arg9) const;\
1571 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1573 template <typename F> operator ::testing::Action<F>() const {\
1574 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1));\
1579 GTEST_DISALLOW_ASSIGN_(name##ActionP2);\
1581 template <typename p0##_type, typename p1##_type>\
1582 inline name##ActionP2<p0##_type, p1##_type> name(p0##_type p0, \
1584 return name##ActionP2<p0##_type, p1##_type>(p0, p1);\
1586 template <typename p0##_type, typename p1##_type>\
1587 template <typename F>\
1588 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1589 typename arg3_type, typename arg4_type, typename arg5_type, \
1590 typename arg6_type, typename arg7_type, typename arg8_type, \
1591 typename arg9_type>\
1592 typename ::testing::internal::Function<F>::Result\
1593 name##ActionP2<p0##_type, p1##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1594 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1596#define ACTION_P3(name, p0, p1, p2)\
1597 template <typename p0##_type, typename p1##_type, typename p2##_type>\
1598 class name##ActionP3 {\
1600 name##ActionP3(p0##_type gmock_p0, p1##_type gmock_p1, \
1601 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\
1602 template <typename F>\
1603 class gmock_Impl : public ::testing::ActionInterface<F> {\
1605 typedef F function_type;\
1606 typedef typename ::testing::internal::Function<F>::Result return_type;\
1607 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1609 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, \
1610 p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\
1611 virtual return_type Perform(const args_type& args) {\
1612 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1613 Perform(this, args);\
1615 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1616 typename arg3_type, typename arg4_type, typename arg5_type, \
1617 typename arg6_type, typename arg7_type, typename arg8_type, \
1618 typename arg9_type>\
1619 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1620 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1621 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1622 arg9_type arg9) const;\
1627 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1629 template <typename F> operator ::testing::Action<F>() const {\
1630 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2));\
1636 GTEST_DISALLOW_ASSIGN_(name##ActionP3);\
1638 template <typename p0##_type, typename p1##_type, typename p2##_type>\
1639 inline name##ActionP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \
1640 p1##_type p1, p2##_type p2) {\
1641 return name##ActionP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\
1643 template <typename p0##_type, typename p1##_type, typename p2##_type>\
1644 template <typename F>\
1645 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1646 typename arg3_type, typename arg4_type, typename arg5_type, \
1647 typename arg6_type, typename arg7_type, typename arg8_type, \
1648 typename arg9_type>\
1649 typename ::testing::internal::Function<F>::Result\
1650 name##ActionP3<p0##_type, p1##_type, \
1651 p2##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1652 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1654#define ACTION_P4(name, p0, p1, p2, p3)\
1655 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1656 typename p3##_type>\
1657 class name##ActionP4 {\
1659 name##ActionP4(p0##_type gmock_p0, p1##_type gmock_p1, \
1660 p2##_type gmock_p2, p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), \
1661 p2(gmock_p2), p3(gmock_p3) {}\
1662 template <typename F>\
1663 class gmock_Impl : public ::testing::ActionInterface<F> {\
1665 typedef F function_type;\
1666 typedef typename ::testing::internal::Function<F>::Result return_type;\
1667 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1669 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1670 p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1672 virtual return_type Perform(const args_type& args) {\
1673 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1674 Perform(this, args);\
1676 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1677 typename arg3_type, typename arg4_type, typename arg5_type, \
1678 typename arg6_type, typename arg7_type, typename arg8_type, \
1679 typename arg9_type>\
1680 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1681 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1682 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1683 arg9_type arg9) const;\
1689 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1691 template <typename F> operator ::testing::Action<F>() const {\
1692 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3));\
1699 GTEST_DISALLOW_ASSIGN_(name##ActionP4);\
1701 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1702 typename p3##_type>\
1703 inline name##ActionP4<p0##_type, p1##_type, p2##_type, \
1704 p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
1706 return name##ActionP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, p1, \
1709 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1710 typename p3##_type>\
1711 template <typename F>\
1712 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1713 typename arg3_type, typename arg4_type, typename arg5_type, \
1714 typename arg6_type, typename arg7_type, typename arg8_type, \
1715 typename arg9_type>\
1716 typename ::testing::internal::Function<F>::Result\
1717 name##ActionP4<p0##_type, p1##_type, p2##_type, \
1718 p3##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1719 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1721#define ACTION_P5(name, p0, p1, p2, p3, p4)\
1722 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1723 typename p3##_type, typename p4##_type>\
1724 class name##ActionP5 {\
1726 name##ActionP5(p0##_type gmock_p0, p1##_type gmock_p1, \
1727 p2##_type gmock_p2, p3##_type gmock_p3, \
1728 p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1729 p3(gmock_p3), p4(gmock_p4) {}\
1730 template <typename F>\
1731 class gmock_Impl : public ::testing::ActionInterface<F> {\
1733 typedef F function_type;\
1734 typedef typename ::testing::internal::Function<F>::Result return_type;\
1735 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1737 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1738 p3##_type gmock_p3, p4##_type gmock_p4) : p0(gmock_p0), \
1739 p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4) {}\
1740 virtual return_type Perform(const args_type& args) {\
1741 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1742 Perform(this, args);\
1744 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1745 typename arg3_type, typename arg4_type, typename arg5_type, \
1746 typename arg6_type, typename arg7_type, typename arg8_type, \
1747 typename arg9_type>\
1748 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1749 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1750 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1751 arg9_type arg9) const;\
1758 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1760 template <typename F> operator ::testing::Action<F>() const {\
1761 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4));\
1769 GTEST_DISALLOW_ASSIGN_(name##ActionP5);\
1771 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1772 typename p3##_type, typename p4##_type>\
1773 inline name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1774 p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
1776 return name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1777 p4##_type>(p0, p1, p2, p3, p4);\
1779 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1780 typename p3##_type, typename p4##_type>\
1781 template <typename F>\
1782 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1783 typename arg3_type, typename arg4_type, typename arg5_type, \
1784 typename arg6_type, typename arg7_type, typename arg8_type, \
1785 typename arg9_type>\
1786 typename ::testing::internal::Function<F>::Result\
1787 name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \
1788 p4##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1789 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1791#define ACTION_P6(name, p0, p1, p2, p3, p4, p5)\
1792 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1793 typename p3##_type, typename p4##_type, typename p5##_type>\
1794 class name##ActionP6 {\
1796 name##ActionP6(p0##_type gmock_p0, p1##_type gmock_p1, \
1797 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1798 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1799 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\
1800 template <typename F>\
1801 class gmock_Impl : public ::testing::ActionInterface<F> {\
1803 typedef F function_type;\
1804 typedef typename ::testing::internal::Function<F>::Result return_type;\
1805 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1807 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1808 p3##_type gmock_p3, p4##_type gmock_p4, \
1809 p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1810 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {}\
1811 virtual return_type Perform(const args_type& args) {\
1812 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1813 Perform(this, args);\
1815 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1816 typename arg3_type, typename arg4_type, typename arg5_type, \
1817 typename arg6_type, typename arg7_type, typename arg8_type, \
1818 typename arg9_type>\
1819 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1820 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1821 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1822 arg9_type arg9) const;\
1830 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1832 template <typename F> operator ::testing::Action<F>() const {\
1833 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5));\
1842 GTEST_DISALLOW_ASSIGN_(name##ActionP6);\
1844 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1845 typename p3##_type, typename p4##_type, typename p5##_type>\
1846 inline name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \
1847 p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
1848 p3##_type p3, p4##_type p4, p5##_type p5) {\
1849 return name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \
1850 p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\
1852 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1853 typename p3##_type, typename p4##_type, typename p5##_type>\
1854 template <typename F>\
1855 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1856 typename arg3_type, typename arg4_type, typename arg5_type, \
1857 typename arg6_type, typename arg7_type, typename arg8_type, \
1858 typename arg9_type>\
1859 typename ::testing::internal::Function<F>::Result\
1860 name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1861 p5##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1862 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1864#define ACTION_P7(name, p0, p1, p2, p3, p4, p5, p6)\
1865 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1866 typename p3##_type, typename p4##_type, typename p5##_type, \
1867 typename p6##_type>\
1868 class name##ActionP7 {\
1870 name##ActionP7(p0##_type gmock_p0, p1##_type gmock_p1, \
1871 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1872 p5##_type gmock_p5, p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), \
1873 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), \
1875 template <typename F>\
1876 class gmock_Impl : public ::testing::ActionInterface<F> {\
1878 typedef F function_type;\
1879 typedef typename ::testing::internal::Function<F>::Result return_type;\
1880 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1882 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1883 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1884 p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1885 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) {}\
1886 virtual return_type Perform(const args_type& args) {\
1887 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1888 Perform(this, args);\
1890 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1891 typename arg3_type, typename arg4_type, typename arg5_type, \
1892 typename arg6_type, typename arg7_type, typename arg8_type, \
1893 typename arg9_type>\
1894 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1895 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1896 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1897 arg9_type arg9) const;\
1906 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1908 template <typename F> operator ::testing::Action<F>() const {\
1909 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
1920 GTEST_DISALLOW_ASSIGN_(name##ActionP7);\
1922 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1923 typename p3##_type, typename p4##_type, typename p5##_type, \
1924 typename p6##_type>\
1925 inline name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \
1926 p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \
1927 p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
1929 return name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \
1930 p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\
1932 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1933 typename p3##_type, typename p4##_type, typename p5##_type, \
1934 typename p6##_type>\
1935 template <typename F>\
1936 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1937 typename arg3_type, typename arg4_type, typename arg5_type, \
1938 typename arg6_type, typename arg7_type, typename arg8_type, \
1939 typename arg9_type>\
1940 typename ::testing::internal::Function<F>::Result\
1941 name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
1942 p5##_type, p6##_type>::gmock_Impl<F>::gmock_PerformImpl(\
1943 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
1945#define ACTION_P8(name, p0, p1, p2, p3, p4, p5, p6, p7)\
1946 template <typename p0##_type, typename p1##_type, typename p2##_type, \
1947 typename p3##_type, typename p4##_type, typename p5##_type, \
1948 typename p6##_type, typename p7##_type>\
1949 class name##ActionP8 {\
1951 name##ActionP8(p0##_type gmock_p0, p1##_type gmock_p1, \
1952 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
1953 p5##_type gmock_p5, p6##_type gmock_p6, \
1954 p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
1955 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
1957 template <typename F>\
1958 class gmock_Impl : public ::testing::ActionInterface<F> {\
1960 typedef F function_type;\
1961 typedef typename ::testing::internal::Function<F>::Result return_type;\
1962 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
1964 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
1965 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
1966 p6##_type gmock_p6, p7##_type gmock_p7) : p0(gmock_p0), \
1967 p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), \
1968 p5(gmock_p5), p6(gmock_p6), p7(gmock_p7) {}\
1969 virtual return_type Perform(const args_type& args) {\
1970 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
1971 Perform(this, args);\
1973 template <typename arg0_type, typename arg1_type, typename arg2_type, \
1974 typename arg3_type, typename arg4_type, typename arg5_type, \
1975 typename arg6_type, typename arg7_type, typename arg8_type, \
1976 typename arg9_type>\
1977 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
1978 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
1979 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
1980 arg9_type arg9) const;\
1990 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
1992 template <typename F> operator ::testing::Action<F>() const {\
1993 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
2005 GTEST_DISALLOW_ASSIGN_(name##ActionP8);\
2007 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2008 typename p3##_type, typename p4##_type, typename p5##_type, \
2009 typename p6##_type, typename p7##_type>\
2010 inline name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \
2011 p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \
2012 p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
2013 p6##_type p6, p7##_type p7) {\
2014 return name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \
2015 p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \
2018 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2019 typename p3##_type, typename p4##_type, typename p5##_type, \
2020 typename p6##_type, typename p7##_type>\
2021 template <typename F>\
2022 template <typename arg0_type, typename arg1_type, typename arg2_type, \
2023 typename arg3_type, typename arg4_type, typename arg5_type, \
2024 typename arg6_type, typename arg7_type, typename arg8_type, \
2025 typename arg9_type>\
2026 typename ::testing::internal::Function<F>::Result\
2027 name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
2028 p5##_type, p6##_type, \
2029 p7##_type>::gmock_Impl<F>::gmock_PerformImpl(\
2030 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
2032#define ACTION_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8)\
2033 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2034 typename p3##_type, typename p4##_type, typename p5##_type, \
2035 typename p6##_type, typename p7##_type, typename p8##_type>\
2036 class name##ActionP9 {\
2038 name##ActionP9(p0##_type gmock_p0, p1##_type gmock_p1, \
2039 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
2040 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
2041 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
2042 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \
2044 template <typename F>\
2045 class gmock_Impl : public ::testing::ActionInterface<F> {\
2047 typedef F function_type;\
2048 typedef typename ::testing::internal::Function<F>::Result return_type;\
2049 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
2051 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
2052 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
2053 p6##_type gmock_p6, p7##_type gmock_p7, \
2054 p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
2055 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
2056 p7(gmock_p7), p8(gmock_p8) {}\
2057 virtual return_type Perform(const args_type& args) {\
2058 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
2059 Perform(this, args);\
2061 template <typename arg0_type, typename arg1_type, typename arg2_type, \
2062 typename arg3_type, typename arg4_type, typename arg5_type, \
2063 typename arg6_type, typename arg7_type, typename arg8_type, \
2064 typename arg9_type>\
2065 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
2066 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
2067 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
2068 arg9_type arg9) const;\
2079 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
2081 template <typename F> operator ::testing::Action<F>() const {\
2082 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
2095 GTEST_DISALLOW_ASSIGN_(name##ActionP9);\
2097 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2098 typename p3##_type, typename p4##_type, typename p5##_type, \
2099 typename p6##_type, typename p7##_type, typename p8##_type>\
2100 inline name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \
2101 p4##_type, p5##_type, p6##_type, p7##_type, \
2102 p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
2103 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \
2105 return name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \
2106 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \
2107 p3, p4, p5, p6, p7, p8);\
2109 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2110 typename p3##_type, typename p4##_type, typename p5##_type, \
2111 typename p6##_type, typename p7##_type, typename p8##_type>\
2112 template <typename F>\
2113 template <typename arg0_type, typename arg1_type, typename arg2_type, \
2114 typename arg3_type, typename arg4_type, typename arg5_type, \
2115 typename arg6_type, typename arg7_type, typename arg8_type, \
2116 typename arg9_type>\
2117 typename ::testing::internal::Function<F>::Result\
2118 name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
2119 p5##_type, p6##_type, p7##_type, \
2120 p8##_type>::gmock_Impl<F>::gmock_PerformImpl(\
2121 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
2123#define ACTION_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)\
2124 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2125 typename p3##_type, typename p4##_type, typename p5##_type, \
2126 typename p6##_type, typename p7##_type, typename p8##_type, \
2127 typename p9##_type>\
2128 class name##ActionP10 {\
2130 name##ActionP10(p0##_type gmock_p0, p1##_type gmock_p1, \
2131 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \
2132 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \
2133 p8##_type gmock_p8, p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), \
2134 p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
2135 p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\
2136 template <typename F>\
2137 class gmock_Impl : public ::testing::ActionInterface<F> {\
2139 typedef F function_type;\
2140 typedef typename ::testing::internal::Function<F>::Result return_type;\
2141 typedef typename ::testing::internal::Function<F>::ArgumentTuple\
2143 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
2144 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
2145 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
2146 p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \
2147 p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \
2148 p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {}\
2149 virtual return_type Perform(const args_type& args) {\
2150 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\
2151 Perform(this, args);\
2153 template <typename arg0_type, typename arg1_type, typename arg2_type, \
2154 typename arg3_type, typename arg4_type, typename arg5_type, \
2155 typename arg6_type, typename arg7_type, typename arg8_type, \
2156 typename arg9_type>\
2157 return_type gmock_PerformImpl(const args_type& args, arg0_type arg0, \
2158 arg1_type arg1, arg2_type arg2, arg3_type arg3, arg4_type arg4, \
2159 arg5_type arg5, arg6_type arg6, arg7_type arg7, arg8_type arg8, \
2160 arg9_type arg9) const;\
2172 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\
2174 template <typename F> operator ::testing::Action<F>() const {\
2175 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \
2189 GTEST_DISALLOW_ASSIGN_(name##ActionP10);\
2191 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2192 typename p3##_type, typename p4##_type, typename p5##_type, \
2193 typename p6##_type, typename p7##_type, typename p8##_type, \
2194 typename p9##_type>\
2195 inline name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \
2196 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
2197 p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
2198 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \
2200 return name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \
2201 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \
2202 p1, p2, p3, p4, p5, p6, p7, p8, p9);\
2204 template <typename p0##_type, typename p1##_type, typename p2##_type, \
2205 typename p3##_type, typename p4##_type, typename p5##_type, \
2206 typename p6##_type, typename p7##_type, typename p8##_type, \
2207 typename p9##_type>\
2208 template <typename F>\
2209 template <typename arg0_type, typename arg1_type, typename arg2_type, \
2210 typename arg3_type, typename arg4_type, typename arg5_type, \
2211 typename arg6_type, typename arg7_type, typename arg8_type, \
2212 typename arg9_type>\
2213 typename ::testing::internal::Function<F>::Result\
2214 name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
2215 p5##_type, p6##_type, p7##_type, p8##_type, \
2216 p9##_type>::gmock_Impl<F>::gmock_PerformImpl(\
2217 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const
2227# pragma warning(push)
2228# pragma warning(disable:4100)
2262 HAS_1_TEMPLATE_PARAMS(
int, k),
2263 AND_0_VALUE_PARAMS()) {
2265 ::std::tr1::get<k>(args));
2269 HAS_1_TEMPLATE_PARAMS(
int, k),
2270 AND_1_VALUE_PARAMS(p0)) {
2272 ::std::tr1::get<k>(args), p0);
2276 HAS_1_TEMPLATE_PARAMS(
int, k),
2277 AND_2_VALUE_PARAMS(p0, p1)) {
2279 ::std::tr1::get<k>(args), p0, p1);
2283 HAS_1_TEMPLATE_PARAMS(
int, k),
2284 AND_3_VALUE_PARAMS(p0, p1, p2)) {
2286 ::std::tr1::get<k>(args), p0, p1, p2);
2290 HAS_1_TEMPLATE_PARAMS(
int, k),
2291 AND_4_VALUE_PARAMS(p0, p1, p2, p3)) {
2293 ::std::tr1::get<k>(args), p0, p1, p2, p3);
2297 HAS_1_TEMPLATE_PARAMS(
int, k),
2298 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)) {
2300 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4);
2304 HAS_1_TEMPLATE_PARAMS(
int, k),
2305 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)) {
2307 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5);
2311 HAS_1_TEMPLATE_PARAMS(
int, k),
2312 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)) {
2314 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6);
2318 HAS_1_TEMPLATE_PARAMS(
int, k),
2319 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)) {
2321 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7);
2325 HAS_1_TEMPLATE_PARAMS(
int, k),
2326 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8)) {
2328 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8);
2332 HAS_1_TEMPLATE_PARAMS(
int, k),
2333 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) {
2335 ::std::tr1::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
2344 HAS_1_TEMPLATE_PARAMS(
typename, T),
2345 AND_0_VALUE_PARAMS()) {
2350 HAS_1_TEMPLATE_PARAMS(
typename, T),
2351 AND_1_VALUE_PARAMS(p0)) {
2356 HAS_1_TEMPLATE_PARAMS(
typename, T),
2357 AND_2_VALUE_PARAMS(p0, p1)) {
2358 return new T(p0, p1);
2362 HAS_1_TEMPLATE_PARAMS(
typename, T),
2363 AND_3_VALUE_PARAMS(p0, p1, p2)) {
2364 return new T(p0, p1, p2);
2368 HAS_1_TEMPLATE_PARAMS(
typename, T),
2369 AND_4_VALUE_PARAMS(p0, p1, p2, p3)) {
2370 return new T(p0, p1, p2, p3);
2374 HAS_1_TEMPLATE_PARAMS(
typename, T),
2375 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)) {
2376 return new T(p0, p1, p2, p3, p4);
2380 HAS_1_TEMPLATE_PARAMS(
typename, T),
2381 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)) {
2382 return new T(p0, p1, p2, p3, p4, p5);
2386 HAS_1_TEMPLATE_PARAMS(
typename, T),
2387 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)) {
2388 return new T(p0, p1, p2, p3, p4, p5, p6);
2392 HAS_1_TEMPLATE_PARAMS(
typename, T),
2393 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)) {
2394 return new T(p0, p1, p2, p3, p4, p5, p6, p7);
2398 HAS_1_TEMPLATE_PARAMS(
typename, T),
2399 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8)) {
2400 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8);
2404 HAS_1_TEMPLATE_PARAMS(
typename, T),
2405 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) {
2406 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
2410# pragma warning(pop)
Definition mbelib/test/gtest/include/gtest/internal/gtest-tuple.h:604
Definition dsd/test/gmock/include/gmock/gmock-actions.h:252
internal::Function< F >::Result Result
Definition dsd/test/gmock/include/gmock/gmock-actions.h:254
internal::Function< F >::ArgumentTuple ArgumentTuple
Definition dsd/test/gmock/include/gmock/gmock-actions.h:255
Definition dsd/test/gmock/include/gmock/gmock-actions.h:280
Result Perform(const ArgumentTuple &args) const
Definition dsd/test/gmock/include/gmock/gmock-actions.h:312
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:639
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:731
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:659
static Result Perform(Impl *impl, const ::std::tr1::tuple<> &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:641
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:687
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:742
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:709
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:668
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:698
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3, A4, A5, A6, A7 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:720
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0, A1, A2, A3 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:677
static Result Perform(Impl *impl, const ::std::tr1::tuple< A0 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:650
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:362
static R Call(Function function)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:300
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:347
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:340
static R Call(Function function, A1 a1, A2 a2, A3 a3)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:326
static R Call(Function function, A1 a1)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:316
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:354
static R Call(Function function, A1 a1, A2 a2)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:320
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:371
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:333
static R Call(Function function, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:380
Definition dsd/test/gmock/include/gmock/gmock-actions.h:854
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:193
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:201
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:239
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:247
testing::internal::InvokeHelper< R, ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > >::Invoke static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:265
testing::internal::InvokeHelper< R, ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > >::InvokeMethod static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:274
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:149
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:157
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:128
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:135
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:109
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:116
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:224
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6, A7, A8 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:216
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:179
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2, A3, A4, A5, A6 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:171
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1, A2 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:97
static R Invoke(Function function, const ::std::tr1::tuple< A1, A2 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:91
static R Invoke(Function function, const ::std::tr1::tuple< A1 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:73
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple< A1 > &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:79
static R InvokeMethod(Class *obj_ptr, MethodPtr method_ptr, const ::std::tr1::tuple<> &)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:62
static R Invoke(Function function, const ::std::tr1::tuple<> &)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:57
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:51
testing::internal::SelectArgs< Result, ArgumentTuple, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >::type Result type()
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:432
testing::internal::SelectArgs< Result, ArgumentTuple, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:434
testing::internal::SelectArgs< Result, ArgumentTuple, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:433
testing::internal::SelectArgs< Result, ArgumentTuple, k1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:445
testing::internal::SelectArgs< Result, ArgumentTuple, k1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:446
testing::internal::SelectArgs< Result, ArgumentTuple, k1, -1, -1, -1, -1, -1, -1, -1, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:444
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, -1, -1, -1, -1, -1, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:458
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, -1, -1, -1, -1, -1, -1, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:456
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, -1, -1, -1, -1, -1, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:459
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, -1, -1, -1, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:486
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, -1, -1, -1, -1, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:483
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, -1, -1, -1, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:487
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:537
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:536
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, -1, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:532
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, -1, -1, -1, -1, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:471
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, -1, -1, -1, -1, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:472
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, -1, -1, -1, -1, -1, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:469
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:549
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:555
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:554
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:573
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8), GMOCK_FIELD_(ArgumentTuple, k9))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:568
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, k7, k8, k9, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:574
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, -1, -1, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:515
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, -1, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:520
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, k6, -1, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:519
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, -1, -1, -1, -1, -1 >::Select static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:503
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, -1, -1, -1, -1, -1 >::type Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:499
testing::internal::SelectArgs< Result, ArgumentTuple, k1, k2, k3, k4, k5, -1, -1, -1, -1, -1 >::SelectedArgs Function< type >::ArgumentTuple SelectedArgs
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:502
static SelectedArgs Select(const ArgumentTuple &args)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:420
Result type(GMOCK_FIELD_(ArgumentTuple, k1), GMOCK_FIELD_(ArgumentTuple, k2), GMOCK_FIELD_(ArgumentTuple, k3), GMOCK_FIELD_(ArgumentTuple, k4), GMOCK_FIELD_(ArgumentTuple, k5), GMOCK_FIELD_(ArgumentTuple, k6), GMOCK_FIELD_(ArgumentTuple, k7), GMOCK_FIELD_(ArgumentTuple, k8), GMOCK_FIELD_(ArgumentTuple, k9), GMOCK_FIELD_(ArgumentTuple, k10))
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:413
Function< type >::ArgumentTuple SelectedArgs
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:419
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:588
WithArgsAction(const InnerAction &action)
Definition mbelib/test/gmock/include/gmock/gmock-generated-actions.h:590
#define GMOCK_FIELD_(Tuple, N)
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:388
#define ACTION_TEMPLATE(name, template_params, value_params)
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:1382
#define GTEST_DISALLOW_ASSIGN_(type)
Definition dsd/test/gtest/include/gtest/internal/gtest-port.h:721
Definition dsd/test/gmock/include/gmock/gmock-actions.h:60
Definition dsd/test/gmock/include/gmock/gmock-actions.h:49
internal::WithArgsAction< InnerAction, k1 > WithArgs(const InnerAction &action)
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:763
Action< F > MakeAction(ActionInterface< F > *impl)
Definition dsd/test/gmock/include/gmock/gmock-actions.h:388
internal::DoBothAction< Action1, Action2 > DoAll(Action1 a1, Action2 a2)
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:834
Definition dsd/test/gmock/include/gmock/gmock-generated-actions.h:635
Definition dsd/test/gmock/include/gmock/internal/gmock-generated-internal-utils.h:154