41 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ 42 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ 70 template <
typename Result,
class Impl>
73 static Result
Perform(Impl* impl, const ::std::tuple<>& args) {
74 return impl->template gmock_PerformImpl<>(args,
ExcessiveArg(),
80 template <
typename A0>
81 static Result
Perform(Impl* impl, const ::std::tuple<A0>& args) {
82 return impl->template gmock_PerformImpl<A0>(args, std::get<0>(args),
88 template <
typename A0,
typename A1>
89 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1>& args) {
90 return impl->template gmock_PerformImpl<A0, A1>(args, std::get<0>(args),
96 template <
typename A0,
typename A1,
typename A2>
97 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2>& args) {
98 return impl->template gmock_PerformImpl<A0, A1, A2>(args,
99 std::get<0>(args), std::get<1>(args), std::get<2>(args),
104 template <
typename A0,
typename A1,
typename A2,
typename A3>
105 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3>& args) {
106 return impl->template gmock_PerformImpl<A0, A1, A2, A3>(args,
107 std::get<0>(args), std::get<1>(args), std::get<2>(args),
112 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4>
113 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3,
115 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4>(args,
116 std::get<0>(args), std::get<1>(args), std::get<2>(args),
121 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
123 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4,
125 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5>(args,
126 std::get<0>(args), std::get<1>(args), std::get<2>(args),
127 std::get<3>(args), std::get<4>(args), std::get<5>(args),
131 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
132 typename A5,
typename A6>
133 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
135 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6>(args,
136 std::get<0>(args), std::get<1>(args), std::get<2>(args),
137 std::get<3>(args), std::get<4>(args), std::get<5>(args),
141 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
142 typename A5,
typename A6,
typename A7>
143 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
145 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6,
146 A7>(args, std::get<0>(args), std::get<1>(args), std::get<2>(args),
147 std::get<3>(args), std::get<4>(args), std::get<5>(args),
151 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
152 typename A5,
typename A6,
typename A7,
typename A8>
153 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
155 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7,
156 A8>(args, std::get<0>(args), std::get<1>(args), std::get<2>(args),
157 std::get<3>(args), std::get<4>(args), std::get<5>(args),
158 std::get<6>(args), std::get<7>(args), std::get<8>(args),
162 template <
typename A0,
typename A1,
typename A2,
typename A3,
typename A4,
163 typename A5,
typename A6,
typename A7,
typename A8,
typename A9>
164 static Result
Perform(Impl* impl, const ::std::tuple<A0, A1, A2, A3, A4, A5,
165 A6, A7, A8, A9>& args) {
166 return impl->template gmock_PerformImpl<A0, A1, A2, A3, A4, A5, A6, A7, A8,
167 A9>(args, std::get<0>(args), std::get<1>(args), std::get<2>(args),
168 std::get<3>(args), std::get<4>(args), std::get<5>(args),
169 std::get<6>(args), std::get<7>(args), std::get<8>(args),
274 #define GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_\ 275 const args_type& args GTEST_ATTRIBUTE_UNUSED_, \ 276 const arg0_type& arg0 GTEST_ATTRIBUTE_UNUSED_, \ 277 const arg1_type& arg1 GTEST_ATTRIBUTE_UNUSED_, \ 278 const arg2_type& arg2 GTEST_ATTRIBUTE_UNUSED_, \ 279 const arg3_type& arg3 GTEST_ATTRIBUTE_UNUSED_, \ 280 const arg4_type& arg4 GTEST_ATTRIBUTE_UNUSED_, \ 281 const arg5_type& arg5 GTEST_ATTRIBUTE_UNUSED_, \ 282 const arg6_type& arg6 GTEST_ATTRIBUTE_UNUSED_, \ 283 const arg7_type& arg7 GTEST_ATTRIBUTE_UNUSED_, \ 284 const arg8_type& arg8 GTEST_ATTRIBUTE_UNUSED_, \ 285 const arg9_type& arg9 GTEST_ATTRIBUTE_UNUSED_ 369 #define GMOCK_INTERNAL_DECL_HAS_1_TEMPLATE_PARAMS(kind0, name0) kind0 name0 370 #define GMOCK_INTERNAL_DECL_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ 371 name1) kind0 name0, kind1 name1 372 #define GMOCK_INTERNAL_DECL_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 373 kind2, name2) kind0 name0, kind1 name1, kind2 name2 374 #define GMOCK_INTERNAL_DECL_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 375 kind2, name2, kind3, name3) kind0 name0, kind1 name1, kind2 name2, \ 377 #define GMOCK_INTERNAL_DECL_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 378 kind2, name2, kind3, name3, kind4, name4) kind0 name0, kind1 name1, \ 379 kind2 name2, kind3 name3, kind4 name4 380 #define GMOCK_INTERNAL_DECL_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 381 kind2, name2, kind3, name3, kind4, name4, kind5, name5) kind0 name0, \ 382 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5 383 #define GMOCK_INTERNAL_DECL_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 384 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 385 name6) kind0 name0, kind1 name1, kind2 name2, kind3 name3, kind4 name4, \ 386 kind5 name5, kind6 name6 387 #define GMOCK_INTERNAL_DECL_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 388 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 389 kind7, name7) kind0 name0, kind1 name1, kind2 name2, kind3 name3, \ 390 kind4 name4, kind5 name5, kind6 name6, kind7 name7 391 #define GMOCK_INTERNAL_DECL_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 392 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 393 kind7, name7, kind8, name8) kind0 name0, kind1 name1, kind2 name2, \ 394 kind3 name3, kind4 name4, kind5 name5, kind6 name6, kind7 name7, \ 396 #define GMOCK_INTERNAL_DECL_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ 397 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 398 name6, kind7, name7, kind8, name8, kind9, name9) kind0 name0, \ 399 kind1 name1, kind2 name2, kind3 name3, kind4 name4, kind5 name5, \ 400 kind6 name6, kind7 name7, kind8 name8, kind9 name9 403 #define GMOCK_INTERNAL_LIST_HAS_1_TEMPLATE_PARAMS(kind0, name0) name0 404 #define GMOCK_INTERNAL_LIST_HAS_2_TEMPLATE_PARAMS(kind0, name0, kind1, \ 406 #define GMOCK_INTERNAL_LIST_HAS_3_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 407 kind2, name2) name0, name1, name2 408 #define GMOCK_INTERNAL_LIST_HAS_4_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 409 kind2, name2, kind3, name3) name0, name1, name2, name3 410 #define GMOCK_INTERNAL_LIST_HAS_5_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 411 kind2, name2, kind3, name3, kind4, name4) name0, name1, name2, name3, \ 413 #define GMOCK_INTERNAL_LIST_HAS_6_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 414 kind2, name2, kind3, name3, kind4, name4, kind5, name5) name0, name1, \ 415 name2, name3, name4, name5 416 #define GMOCK_INTERNAL_LIST_HAS_7_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 417 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 418 name6) name0, name1, name2, name3, name4, name5, name6 419 #define GMOCK_INTERNAL_LIST_HAS_8_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 420 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 421 kind7, name7) name0, name1, name2, name3, name4, name5, name6, name7 422 #define GMOCK_INTERNAL_LIST_HAS_9_TEMPLATE_PARAMS(kind0, name0, kind1, name1, \ 423 kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, name6, \ 424 kind7, name7, kind8, name8) name0, name1, name2, name3, name4, name5, \ 426 #define GMOCK_INTERNAL_LIST_HAS_10_TEMPLATE_PARAMS(kind0, name0, kind1, \ 427 name1, kind2, name2, kind3, name3, kind4, name4, kind5, name5, kind6, \ 428 name6, kind7, name7, kind8, name8, kind9, name9) name0, name1, name2, \ 429 name3, name4, name5, name6, name7, name8, name9 432 #define GMOCK_INTERNAL_DECL_TYPE_AND_0_VALUE_PARAMS() 433 #define GMOCK_INTERNAL_DECL_TYPE_AND_1_VALUE_PARAMS(p0) , typename p0##_type 434 #define GMOCK_INTERNAL_DECL_TYPE_AND_2_VALUE_PARAMS(p0, p1) , \ 435 typename p0##_type, typename p1##_type 436 #define GMOCK_INTERNAL_DECL_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , \ 437 typename p0##_type, typename p1##_type, typename p2##_type 438 #define GMOCK_INTERNAL_DECL_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ 439 typename p0##_type, typename p1##_type, typename p2##_type, \ 441 #define GMOCK_INTERNAL_DECL_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ 442 typename p0##_type, typename p1##_type, typename p2##_type, \ 443 typename p3##_type, typename p4##_type 444 #define GMOCK_INTERNAL_DECL_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ 445 typename p0##_type, typename p1##_type, typename p2##_type, \ 446 typename p3##_type, typename p4##_type, typename p5##_type 447 #define GMOCK_INTERNAL_DECL_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 448 p6) , typename p0##_type, typename p1##_type, typename p2##_type, \ 449 typename p3##_type, typename p4##_type, typename p5##_type, \ 451 #define GMOCK_INTERNAL_DECL_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 452 p6, p7) , typename p0##_type, typename p1##_type, typename p2##_type, \ 453 typename p3##_type, typename p4##_type, typename p5##_type, \ 454 typename p6##_type, typename p7##_type 455 #define GMOCK_INTERNAL_DECL_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 456 p6, p7, p8) , typename p0##_type, typename p1##_type, typename p2##_type, \ 457 typename p3##_type, typename p4##_type, typename p5##_type, \ 458 typename p6##_type, typename p7##_type, typename p8##_type 459 #define GMOCK_INTERNAL_DECL_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 460 p6, p7, p8, p9) , typename p0##_type, typename p1##_type, \ 461 typename p2##_type, typename p3##_type, typename p4##_type, \ 462 typename p5##_type, typename p6##_type, typename p7##_type, \ 463 typename p8##_type, typename p9##_type 466 #define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\ 468 #define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\ 469 (p0##_type gmock_p0) : p0(::std::move(gmock_p0)) 470 #define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\ 471 (p0##_type gmock_p0, p1##_type gmock_p1) : p0(::std::move(gmock_p0)), \ 472 p1(::std::move(gmock_p1)) 473 #define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\ 474 (p0##_type gmock_p0, p1##_type gmock_p1, \ 475 p2##_type gmock_p2) : p0(::std::move(gmock_p0)), \ 476 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)) 477 #define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\ 478 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 479 p3##_type gmock_p3) : p0(::std::move(gmock_p0)), \ 480 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ 481 p3(::std::move(gmock_p3)) 482 #define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\ 483 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 484 p3##_type gmock_p3, p4##_type gmock_p4) : p0(::std::move(gmock_p0)), \ 485 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ 486 p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)) 487 #define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\ 488 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 489 p3##_type gmock_p3, p4##_type gmock_p4, \ 490 p5##_type gmock_p5) : p0(::std::move(gmock_p0)), \ 491 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ 492 p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ 493 p5(::std::move(gmock_p5)) 494 #define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\ 495 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 496 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 497 p6##_type gmock_p6) : p0(::std::move(gmock_p0)), \ 498 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ 499 p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ 500 p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)) 501 #define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\ 502 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 503 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 504 p6##_type gmock_p6, p7##_type gmock_p7) : p0(::std::move(gmock_p0)), \ 505 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ 506 p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ 507 p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ 508 p7(::std::move(gmock_p7)) 509 #define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 511 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 512 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 513 p6##_type gmock_p6, p7##_type gmock_p7, \ 514 p8##_type gmock_p8) : p0(::std::move(gmock_p0)), \ 515 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ 516 p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ 517 p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ 518 p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)) 519 #define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 521 (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 522 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 523 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ 524 p9##_type gmock_p9) : p0(::std::move(gmock_p0)), \ 525 p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ 526 p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ 527 p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ 528 p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)), \ 529 p9(::std::move(gmock_p9)) 532 #define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS() 533 #define GMOCK_INTERNAL_DEFN_AND_1_VALUE_PARAMS(p0) p0##_type p0; 534 #define GMOCK_INTERNAL_DEFN_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0; \ 536 #define GMOCK_INTERNAL_DEFN_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0; \ 537 p1##_type p1; p2##_type p2; 538 #define GMOCK_INTERNAL_DEFN_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0; \ 539 p1##_type p1; p2##_type p2; p3##_type p3; 540 #define GMOCK_INTERNAL_DEFN_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ 541 p4) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; 542 #define GMOCK_INTERNAL_DEFN_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ 543 p5) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 545 #define GMOCK_INTERNAL_DEFN_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 546 p6) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 547 p5##_type p5; p6##_type p6; 548 #define GMOCK_INTERNAL_DEFN_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 549 p7) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; p4##_type p4; \ 550 p5##_type p5; p6##_type p6; p7##_type p7; 551 #define GMOCK_INTERNAL_DEFN_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 552 p7, p8) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ 553 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; 554 #define GMOCK_INTERNAL_DEFN_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 555 p7, p8, p9) p0##_type p0; p1##_type p1; p2##_type p2; p3##_type p3; \ 556 p4##_type p4; p5##_type p5; p6##_type p6; p7##_type p7; p8##_type p8; \ 560 #define GMOCK_INTERNAL_LIST_AND_0_VALUE_PARAMS() 561 #define GMOCK_INTERNAL_LIST_AND_1_VALUE_PARAMS(p0) p0 562 #define GMOCK_INTERNAL_LIST_AND_2_VALUE_PARAMS(p0, p1) p0, p1 563 #define GMOCK_INTERNAL_LIST_AND_3_VALUE_PARAMS(p0, p1, p2) p0, p1, p2 564 #define GMOCK_INTERNAL_LIST_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0, p1, p2, p3 565 #define GMOCK_INTERNAL_LIST_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) p0, p1, \ 567 #define GMOCK_INTERNAL_LIST_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) p0, \ 569 #define GMOCK_INTERNAL_LIST_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 570 p6) p0, p1, p2, p3, p4, p5, p6 571 #define GMOCK_INTERNAL_LIST_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 572 p7) p0, p1, p2, p3, p4, p5, p6, p7 573 #define GMOCK_INTERNAL_LIST_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 574 p7, p8) p0, p1, p2, p3, p4, p5, p6, p7, p8 575 #define GMOCK_INTERNAL_LIST_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 576 p7, p8, p9) p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 579 #define GMOCK_INTERNAL_LIST_TYPE_AND_0_VALUE_PARAMS() 580 #define GMOCK_INTERNAL_LIST_TYPE_AND_1_VALUE_PARAMS(p0) , p0##_type 581 #define GMOCK_INTERNAL_LIST_TYPE_AND_2_VALUE_PARAMS(p0, p1) , p0##_type, \ 583 #define GMOCK_INTERNAL_LIST_TYPE_AND_3_VALUE_PARAMS(p0, p1, p2) , p0##_type, \ 585 #define GMOCK_INTERNAL_LIST_TYPE_AND_4_VALUE_PARAMS(p0, p1, p2, p3) , \ 586 p0##_type, p1##_type, p2##_type, p3##_type 587 #define GMOCK_INTERNAL_LIST_TYPE_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) , \ 588 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type 589 #define GMOCK_INTERNAL_LIST_TYPE_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) , \ 590 p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type 591 #define GMOCK_INTERNAL_LIST_TYPE_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 592 p6) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, \ 594 #define GMOCK_INTERNAL_LIST_TYPE_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 595 p6, p7) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 596 p5##_type, p6##_type, p7##_type 597 #define GMOCK_INTERNAL_LIST_TYPE_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 598 p6, p7, p8) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 599 p5##_type, p6##_type, p7##_type, p8##_type 600 #define GMOCK_INTERNAL_LIST_TYPE_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 601 p6, p7, p8, p9) , p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 602 p5##_type, p6##_type, p7##_type, p8##_type, p9##_type 605 #define GMOCK_INTERNAL_DECL_AND_0_VALUE_PARAMS() 606 #define GMOCK_INTERNAL_DECL_AND_1_VALUE_PARAMS(p0) p0##_type p0 607 #define GMOCK_INTERNAL_DECL_AND_2_VALUE_PARAMS(p0, p1) p0##_type p0, \ 609 #define GMOCK_INTERNAL_DECL_AND_3_VALUE_PARAMS(p0, p1, p2) p0##_type p0, \ 610 p1##_type p1, p2##_type p2 611 #define GMOCK_INTERNAL_DECL_AND_4_VALUE_PARAMS(p0, p1, p2, p3) p0##_type p0, \ 612 p1##_type p1, p2##_type p2, p3##_type p3 613 #define GMOCK_INTERNAL_DECL_AND_5_VALUE_PARAMS(p0, p1, p2, p3, \ 614 p4) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4 615 #define GMOCK_INTERNAL_DECL_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, \ 616 p5) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 618 #define GMOCK_INTERNAL_DECL_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, \ 619 p6) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 620 p5##_type p5, p6##_type p6 621 #define GMOCK_INTERNAL_DECL_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 622 p7) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, \ 623 p5##_type p5, p6##_type p6, p7##_type p7 624 #define GMOCK_INTERNAL_DECL_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 625 p7, p8) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 626 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8 627 #define GMOCK_INTERNAL_DECL_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 628 p7, p8, p9) p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 629 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ 633 #define GMOCK_INTERNAL_COUNT_AND_0_VALUE_PARAMS() 634 #define GMOCK_INTERNAL_COUNT_AND_1_VALUE_PARAMS(p0) P 635 #define GMOCK_INTERNAL_COUNT_AND_2_VALUE_PARAMS(p0, p1) P2 636 #define GMOCK_INTERNAL_COUNT_AND_3_VALUE_PARAMS(p0, p1, p2) P3 637 #define GMOCK_INTERNAL_COUNT_AND_4_VALUE_PARAMS(p0, p1, p2, p3) P4 638 #define GMOCK_INTERNAL_COUNT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4) P5 639 #define GMOCK_INTERNAL_COUNT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5) P6 640 #define GMOCK_INTERNAL_COUNT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6) P7 641 #define GMOCK_INTERNAL_COUNT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 643 #define GMOCK_INTERNAL_COUNT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 645 #define GMOCK_INTERNAL_COUNT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \ 649 #define GMOCK_ACTION_CLASS_(name, value_params)\ 650 GTEST_CONCAT_TOKEN_(name##Action, GMOCK_INTERNAL_COUNT_##value_params) 652 #define ACTION_TEMPLATE(name, template_params, value_params)\ 653 template <GMOCK_INTERNAL_DECL_##template_params\ 654 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 655 class GMOCK_ACTION_CLASS_(name, value_params) {\ 657 explicit GMOCK_ACTION_CLASS_(name, value_params)\ 658 GMOCK_INTERNAL_INIT_##value_params {}\ 659 template <typename F>\ 660 class gmock_Impl : public ::testing::ActionInterface<F> {\ 662 typedef F function_type;\ 663 typedef typename ::testing::internal::Function<F>::Result return_type;\ 664 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 666 explicit gmock_Impl GMOCK_INTERNAL_INIT_##value_params {}\ 667 virtual return_type Perform(const args_type& args) {\ 668 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 669 Perform(this, args);\ 671 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 672 typename arg3_type, typename arg4_type, typename arg5_type, \ 673 typename arg6_type, typename arg7_type, typename arg8_type, \ 675 return_type gmock_PerformImpl(const args_type& args, \ 676 const arg0_type& arg0, const arg1_type& arg1, \ 677 const arg2_type& arg2, const arg3_type& arg3, \ 678 const arg4_type& arg4, const arg5_type& arg5, \ 679 const arg6_type& arg6, const arg7_type& arg7, \ 680 const arg8_type& arg8, const arg9_type& arg9) const;\ 681 GMOCK_INTERNAL_DEFN_##value_params\ 683 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 685 template <typename F> operator ::testing::Action<F>() const {\ 686 return ::testing::Action<F>(\ 687 new gmock_Impl<F>(GMOCK_INTERNAL_LIST_##value_params));\ 689 GMOCK_INTERNAL_DEFN_##value_params\ 691 GTEST_DISALLOW_ASSIGN_(GMOCK_ACTION_CLASS_(name, value_params));\ 693 template <GMOCK_INTERNAL_DECL_##template_params\ 694 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 695 inline GMOCK_ACTION_CLASS_(name, value_params)<\ 696 GMOCK_INTERNAL_LIST_##template_params\ 697 GMOCK_INTERNAL_LIST_TYPE_##value_params> name(\ 698 GMOCK_INTERNAL_DECL_##value_params) {\ 699 return GMOCK_ACTION_CLASS_(name, value_params)<\ 700 GMOCK_INTERNAL_LIST_##template_params\ 701 GMOCK_INTERNAL_LIST_TYPE_##value_params>(\ 702 GMOCK_INTERNAL_LIST_##value_params);\ 704 template <GMOCK_INTERNAL_DECL_##template_params\ 705 GMOCK_INTERNAL_DECL_TYPE_##value_params>\ 706 template <typename F>\ 707 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 708 typename arg3_type, typename arg4_type, typename arg5_type, \ 709 typename arg6_type, typename arg7_type, typename arg8_type, \ 711 typename ::testing::internal::Function<F>::Result\ 712 GMOCK_ACTION_CLASS_(name, value_params)<\ 713 GMOCK_INTERNAL_LIST_##template_params\ 714 GMOCK_INTERNAL_LIST_TYPE_##value_params>::gmock_Impl<F>::\ 716 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 718 #define ACTION(name)\ 719 class name##Action {\ 722 template <typename F>\ 723 class gmock_Impl : public ::testing::ActionInterface<F> {\ 725 typedef F function_type;\ 726 typedef typename ::testing::internal::Function<F>::Result return_type;\ 727 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 730 virtual return_type Perform(const args_type& args) {\ 731 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 732 Perform(this, args);\ 734 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 735 typename arg3_type, typename arg4_type, typename arg5_type, \ 736 typename arg6_type, typename arg7_type, typename arg8_type, \ 738 return_type gmock_PerformImpl(const args_type& args, \ 739 const arg0_type& arg0, const arg1_type& arg1, \ 740 const arg2_type& arg2, const arg3_type& arg3, \ 741 const arg4_type& arg4, const arg5_type& arg5, \ 742 const arg6_type& arg6, const arg7_type& arg7, \ 743 const arg8_type& arg8, const arg9_type& arg9) const;\ 745 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 747 template <typename F> operator ::testing::Action<F>() const {\ 748 return ::testing::Action<F>(new gmock_Impl<F>());\ 751 GTEST_DISALLOW_ASSIGN_(name##Action);\ 753 inline name##Action name() {\ 754 return name##Action();\ 756 template <typename F>\ 757 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 758 typename arg3_type, typename arg4_type, typename arg5_type, \ 759 typename arg6_type, typename arg7_type, typename arg8_type, \ 761 typename ::testing::internal::Function<F>::Result\ 762 name##Action::gmock_Impl<F>::gmock_PerformImpl(\ 763 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 765 #define ACTION_P(name, p0)\ 766 template <typename p0##_type>\ 767 class name##ActionP {\ 769 explicit name##ActionP(p0##_type gmock_p0) : \ 770 p0(::std::forward<p0##_type>(gmock_p0)) {}\ 771 template <typename F>\ 772 class gmock_Impl : public ::testing::ActionInterface<F> {\ 774 typedef F function_type;\ 775 typedef typename ::testing::internal::Function<F>::Result return_type;\ 776 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 778 explicit gmock_Impl(p0##_type gmock_p0) : \ 779 p0(::std::forward<p0##_type>(gmock_p0)) {}\ 780 virtual return_type Perform(const args_type& args) {\ 781 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 782 Perform(this, args);\ 784 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 785 typename arg3_type, typename arg4_type, typename arg5_type, \ 786 typename arg6_type, typename arg7_type, typename arg8_type, \ 788 return_type gmock_PerformImpl(const args_type& args, \ 789 const arg0_type& arg0, const arg1_type& arg1, \ 790 const arg2_type& arg2, const arg3_type& arg3, \ 791 const arg4_type& arg4, const arg5_type& arg5, \ 792 const arg6_type& arg6, const arg7_type& arg7, \ 793 const arg8_type& arg8, const arg9_type& arg9) const;\ 796 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 798 template <typename F> operator ::testing::Action<F>() const {\ 799 return ::testing::Action<F>(new gmock_Impl<F>(p0));\ 803 GTEST_DISALLOW_ASSIGN_(name##ActionP);\ 805 template <typename p0##_type>\ 806 inline name##ActionP<p0##_type> name(p0##_type p0) {\ 807 return name##ActionP<p0##_type>(p0);\ 809 template <typename p0##_type>\ 810 template <typename F>\ 811 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 812 typename arg3_type, typename arg4_type, typename arg5_type, \ 813 typename arg6_type, typename arg7_type, typename arg8_type, \ 815 typename ::testing::internal::Function<F>::Result\ 816 name##ActionP<p0##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 817 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 819 #define ACTION_P2(name, p0, p1)\ 820 template <typename p0##_type, typename p1##_type>\ 821 class name##ActionP2 {\ 823 name##ActionP2(p0##_type gmock_p0, \ 824 p1##_type gmock_p1) : p0(::std::forward<p0##_type>(gmock_p0)), \ 825 p1(::std::forward<p1##_type>(gmock_p1)) {}\ 826 template <typename F>\ 827 class gmock_Impl : public ::testing::ActionInterface<F> {\ 829 typedef F function_type;\ 830 typedef typename ::testing::internal::Function<F>::Result return_type;\ 831 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 833 gmock_Impl(p0##_type gmock_p0, \ 834 p1##_type gmock_p1) : p0(::std::forward<p0##_type>(gmock_p0)), \ 835 p1(::std::forward<p1##_type>(gmock_p1)) {}\ 836 virtual return_type Perform(const args_type& args) {\ 837 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 838 Perform(this, args);\ 840 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 841 typename arg3_type, typename arg4_type, typename arg5_type, \ 842 typename arg6_type, typename arg7_type, typename arg8_type, \ 844 return_type gmock_PerformImpl(const args_type& args, \ 845 const arg0_type& arg0, const arg1_type& arg1, \ 846 const arg2_type& arg2, const arg3_type& arg3, \ 847 const arg4_type& arg4, const arg5_type& arg5, \ 848 const arg6_type& arg6, const arg7_type& arg7, \ 849 const arg8_type& arg8, const arg9_type& arg9) const;\ 853 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 855 template <typename F> operator ::testing::Action<F>() const {\ 856 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1));\ 861 GTEST_DISALLOW_ASSIGN_(name##ActionP2);\ 863 template <typename p0##_type, typename p1##_type>\ 864 inline name##ActionP2<p0##_type, p1##_type> name(p0##_type p0, \ 866 return name##ActionP2<p0##_type, p1##_type>(p0, p1);\ 868 template <typename p0##_type, typename p1##_type>\ 869 template <typename F>\ 870 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 871 typename arg3_type, typename arg4_type, typename arg5_type, \ 872 typename arg6_type, typename arg7_type, typename arg8_type, \ 874 typename ::testing::internal::Function<F>::Result\ 875 name##ActionP2<p0##_type, p1##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 876 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 878 #define ACTION_P3(name, p0, p1, p2)\ 879 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 880 class name##ActionP3 {\ 882 name##ActionP3(p0##_type gmock_p0, p1##_type gmock_p1, \ 883 p2##_type gmock_p2) : p0(::std::forward<p0##_type>(gmock_p0)), \ 884 p1(::std::forward<p1##_type>(gmock_p1)), \ 885 p2(::std::forward<p2##_type>(gmock_p2)) {}\ 886 template <typename F>\ 887 class gmock_Impl : public ::testing::ActionInterface<F> {\ 889 typedef F function_type;\ 890 typedef typename ::testing::internal::Function<F>::Result return_type;\ 891 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 893 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, \ 894 p2##_type gmock_p2) : p0(::std::forward<p0##_type>(gmock_p0)), \ 895 p1(::std::forward<p1##_type>(gmock_p1)), \ 896 p2(::std::forward<p2##_type>(gmock_p2)) {}\ 897 virtual return_type Perform(const args_type& args) {\ 898 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 899 Perform(this, args);\ 901 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 902 typename arg3_type, typename arg4_type, typename arg5_type, \ 903 typename arg6_type, typename arg7_type, typename arg8_type, \ 905 return_type gmock_PerformImpl(const args_type& args, \ 906 const arg0_type& arg0, const arg1_type& arg1, \ 907 const arg2_type& arg2, const arg3_type& arg3, \ 908 const arg4_type& arg4, const arg5_type& arg5, \ 909 const arg6_type& arg6, const arg7_type& arg7, \ 910 const arg8_type& arg8, const arg9_type& arg9) const;\ 915 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 917 template <typename F> operator ::testing::Action<F>() const {\ 918 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2));\ 924 GTEST_DISALLOW_ASSIGN_(name##ActionP3);\ 926 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 927 inline name##ActionP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \ 928 p1##_type p1, p2##_type p2) {\ 929 return name##ActionP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\ 931 template <typename p0##_type, typename p1##_type, typename p2##_type>\ 932 template <typename F>\ 933 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 934 typename arg3_type, typename arg4_type, typename arg5_type, \ 935 typename arg6_type, typename arg7_type, typename arg8_type, \ 937 typename ::testing::internal::Function<F>::Result\ 938 name##ActionP3<p0##_type, p1##_type, \ 939 p2##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 940 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 942 #define ACTION_P4(name, p0, p1, p2, p3)\ 943 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 945 class name##ActionP4 {\ 947 name##ActionP4(p0##_type gmock_p0, p1##_type gmock_p1, \ 948 p2##_type gmock_p2, \ 949 p3##_type gmock_p3) : p0(::std::forward<p0##_type>(gmock_p0)), \ 950 p1(::std::forward<p1##_type>(gmock_p1)), \ 951 p2(::std::forward<p2##_type>(gmock_p2)), \ 952 p3(::std::forward<p3##_type>(gmock_p3)) {}\ 953 template <typename F>\ 954 class gmock_Impl : public ::testing::ActionInterface<F> {\ 956 typedef F function_type;\ 957 typedef typename ::testing::internal::Function<F>::Result return_type;\ 958 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 960 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 961 p3##_type gmock_p3) : p0(::std::forward<p0##_type>(gmock_p0)), \ 962 p1(::std::forward<p1##_type>(gmock_p1)), \ 963 p2(::std::forward<p2##_type>(gmock_p2)), \ 964 p3(::std::forward<p3##_type>(gmock_p3)) {}\ 965 virtual return_type Perform(const args_type& args) {\ 966 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 967 Perform(this, args);\ 969 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 970 typename arg3_type, typename arg4_type, typename arg5_type, \ 971 typename arg6_type, typename arg7_type, typename arg8_type, \ 973 return_type gmock_PerformImpl(const args_type& args, \ 974 const arg0_type& arg0, const arg1_type& arg1, \ 975 const arg2_type& arg2, const arg3_type& arg3, \ 976 const arg4_type& arg4, const arg5_type& arg5, \ 977 const arg6_type& arg6, const arg7_type& arg7, \ 978 const arg8_type& arg8, const arg9_type& arg9) const;\ 984 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 986 template <typename F> operator ::testing::Action<F>() const {\ 987 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3));\ 994 GTEST_DISALLOW_ASSIGN_(name##ActionP4);\ 996 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 998 inline name##ActionP4<p0##_type, p1##_type, p2##_type, \ 999 p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 1001 return name##ActionP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, p1, \ 1004 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1005 typename p3##_type>\ 1006 template <typename F>\ 1007 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1008 typename arg3_type, typename arg4_type, typename arg5_type, \ 1009 typename arg6_type, typename arg7_type, typename arg8_type, \ 1010 typename arg9_type>\ 1011 typename ::testing::internal::Function<F>::Result\ 1012 name##ActionP4<p0##_type, p1##_type, p2##_type, \ 1013 p3##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1014 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1016 #define ACTION_P5(name, p0, p1, p2, p3, p4)\ 1017 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1018 typename p3##_type, typename p4##_type>\ 1019 class name##ActionP5 {\ 1021 name##ActionP5(p0##_type gmock_p0, p1##_type gmock_p1, \ 1022 p2##_type gmock_p2, p3##_type gmock_p3, \ 1023 p4##_type gmock_p4) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1024 p1(::std::forward<p1##_type>(gmock_p1)), \ 1025 p2(::std::forward<p2##_type>(gmock_p2)), \ 1026 p3(::std::forward<p3##_type>(gmock_p3)), \ 1027 p4(::std::forward<p4##_type>(gmock_p4)) {}\ 1028 template <typename F>\ 1029 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1031 typedef F function_type;\ 1032 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1033 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1035 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1036 p3##_type gmock_p3, \ 1037 p4##_type gmock_p4) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1038 p1(::std::forward<p1##_type>(gmock_p1)), \ 1039 p2(::std::forward<p2##_type>(gmock_p2)), \ 1040 p3(::std::forward<p3##_type>(gmock_p3)), \ 1041 p4(::std::forward<p4##_type>(gmock_p4)) {}\ 1042 virtual return_type Perform(const args_type& args) {\ 1043 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1044 Perform(this, args);\ 1046 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1047 typename arg3_type, typename arg4_type, typename arg5_type, \ 1048 typename arg6_type, typename arg7_type, typename arg8_type, \ 1049 typename arg9_type>\ 1050 return_type gmock_PerformImpl(const args_type& args, \ 1051 const arg0_type& arg0, const arg1_type& arg1, \ 1052 const arg2_type& arg2, const arg3_type& arg3, \ 1053 const arg4_type& arg4, const arg5_type& arg5, \ 1054 const arg6_type& arg6, const arg7_type& arg7, \ 1055 const arg8_type& arg8, const arg9_type& arg9) const;\ 1062 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1064 template <typename F> operator ::testing::Action<F>() const {\ 1065 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4));\ 1073 GTEST_DISALLOW_ASSIGN_(name##ActionP5);\ 1075 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1076 typename p3##_type, typename p4##_type>\ 1077 inline name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 1078 p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 1080 return name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 1081 p4##_type>(p0, p1, p2, p3, p4);\ 1083 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1084 typename p3##_type, typename p4##_type>\ 1085 template <typename F>\ 1086 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1087 typename arg3_type, typename arg4_type, typename arg5_type, \ 1088 typename arg6_type, typename arg7_type, typename arg8_type, \ 1089 typename arg9_type>\ 1090 typename ::testing::internal::Function<F>::Result\ 1091 name##ActionP5<p0##_type, p1##_type, p2##_type, p3##_type, \ 1092 p4##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1093 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1095 #define ACTION_P6(name, p0, p1, p2, p3, p4, p5)\ 1096 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1097 typename p3##_type, typename p4##_type, typename p5##_type>\ 1098 class name##ActionP6 {\ 1100 name##ActionP6(p0##_type gmock_p0, p1##_type gmock_p1, \ 1101 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 1102 p5##_type gmock_p5) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1103 p1(::std::forward<p1##_type>(gmock_p1)), \ 1104 p2(::std::forward<p2##_type>(gmock_p2)), \ 1105 p3(::std::forward<p3##_type>(gmock_p3)), \ 1106 p4(::std::forward<p4##_type>(gmock_p4)), \ 1107 p5(::std::forward<p5##_type>(gmock_p5)) {}\ 1108 template <typename F>\ 1109 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1111 typedef F function_type;\ 1112 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1113 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1115 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1116 p3##_type gmock_p3, p4##_type gmock_p4, \ 1117 p5##_type gmock_p5) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1118 p1(::std::forward<p1##_type>(gmock_p1)), \ 1119 p2(::std::forward<p2##_type>(gmock_p2)), \ 1120 p3(::std::forward<p3##_type>(gmock_p3)), \ 1121 p4(::std::forward<p4##_type>(gmock_p4)), \ 1122 p5(::std::forward<p5##_type>(gmock_p5)) {}\ 1123 virtual return_type Perform(const args_type& args) {\ 1124 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1125 Perform(this, args);\ 1127 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1128 typename arg3_type, typename arg4_type, typename arg5_type, \ 1129 typename arg6_type, typename arg7_type, typename arg8_type, \ 1130 typename arg9_type>\ 1131 return_type gmock_PerformImpl(const args_type& args, \ 1132 const arg0_type& arg0, const arg1_type& arg1, \ 1133 const arg2_type& arg2, const arg3_type& arg3, \ 1134 const arg4_type& arg4, const arg5_type& arg5, \ 1135 const arg6_type& arg6, const arg7_type& arg7, \ 1136 const arg8_type& arg8, const arg9_type& arg9) const;\ 1144 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1146 template <typename F> operator ::testing::Action<F>() const {\ 1147 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5));\ 1156 GTEST_DISALLOW_ASSIGN_(name##ActionP6);\ 1158 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1159 typename p3##_type, typename p4##_type, typename p5##_type>\ 1160 inline name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 1161 p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \ 1162 p3##_type p3, p4##_type p4, p5##_type p5) {\ 1163 return name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, \ 1164 p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\ 1166 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1167 typename p3##_type, typename p4##_type, typename p5##_type>\ 1168 template <typename F>\ 1169 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1170 typename arg3_type, typename arg4_type, typename arg5_type, \ 1171 typename arg6_type, typename arg7_type, typename arg8_type, \ 1172 typename arg9_type>\ 1173 typename ::testing::internal::Function<F>::Result\ 1174 name##ActionP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1175 p5##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1176 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1178 #define ACTION_P7(name, p0, p1, p2, p3, p4, p5, p6)\ 1179 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1180 typename p3##_type, typename p4##_type, typename p5##_type, \ 1181 typename p6##_type>\ 1182 class name##ActionP7 {\ 1184 name##ActionP7(p0##_type gmock_p0, p1##_type gmock_p1, \ 1185 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 1186 p5##_type gmock_p5, \ 1187 p6##_type gmock_p6) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1188 p1(::std::forward<p1##_type>(gmock_p1)), \ 1189 p2(::std::forward<p2##_type>(gmock_p2)), \ 1190 p3(::std::forward<p3##_type>(gmock_p3)), \ 1191 p4(::std::forward<p4##_type>(gmock_p4)), \ 1192 p5(::std::forward<p5##_type>(gmock_p5)), \ 1193 p6(::std::forward<p6##_type>(gmock_p6)) {}\ 1194 template <typename F>\ 1195 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1197 typedef F function_type;\ 1198 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1199 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1201 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1202 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1203 p6##_type gmock_p6) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1204 p1(::std::forward<p1##_type>(gmock_p1)), \ 1205 p2(::std::forward<p2##_type>(gmock_p2)), \ 1206 p3(::std::forward<p3##_type>(gmock_p3)), \ 1207 p4(::std::forward<p4##_type>(gmock_p4)), \ 1208 p5(::std::forward<p5##_type>(gmock_p5)), \ 1209 p6(::std::forward<p6##_type>(gmock_p6)) {}\ 1210 virtual return_type Perform(const args_type& args) {\ 1211 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1212 Perform(this, args);\ 1214 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1215 typename arg3_type, typename arg4_type, typename arg5_type, \ 1216 typename arg6_type, typename arg7_type, typename arg8_type, \ 1217 typename arg9_type>\ 1218 return_type gmock_PerformImpl(const args_type& args, \ 1219 const arg0_type& arg0, const arg1_type& arg1, \ 1220 const arg2_type& arg2, const arg3_type& arg3, \ 1221 const arg4_type& arg4, const arg5_type& arg5, \ 1222 const arg6_type& arg6, const arg7_type& arg7, \ 1223 const arg8_type& arg8, const arg9_type& arg9) const;\ 1232 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1234 template <typename F> operator ::testing::Action<F>() const {\ 1235 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 1246 GTEST_DISALLOW_ASSIGN_(name##ActionP7);\ 1248 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1249 typename p3##_type, typename p4##_type, typename p5##_type, \ 1250 typename p6##_type>\ 1251 inline name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 1252 p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \ 1253 p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 1255 return name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, \ 1256 p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\ 1258 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1259 typename p3##_type, typename p4##_type, typename p5##_type, \ 1260 typename p6##_type>\ 1261 template <typename F>\ 1262 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1263 typename arg3_type, typename arg4_type, typename arg5_type, \ 1264 typename arg6_type, typename arg7_type, typename arg8_type, \ 1265 typename arg9_type>\ 1266 typename ::testing::internal::Function<F>::Result\ 1267 name##ActionP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1268 p5##_type, p6##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1269 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1271 #define ACTION_P8(name, p0, p1, p2, p3, p4, p5, p6, p7)\ 1272 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1273 typename p3##_type, typename p4##_type, typename p5##_type, \ 1274 typename p6##_type, typename p7##_type>\ 1275 class name##ActionP8 {\ 1277 name##ActionP8(p0##_type gmock_p0, p1##_type gmock_p1, \ 1278 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 1279 p5##_type gmock_p5, p6##_type gmock_p6, \ 1280 p7##_type gmock_p7) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1281 p1(::std::forward<p1##_type>(gmock_p1)), \ 1282 p2(::std::forward<p2##_type>(gmock_p2)), \ 1283 p3(::std::forward<p3##_type>(gmock_p3)), \ 1284 p4(::std::forward<p4##_type>(gmock_p4)), \ 1285 p5(::std::forward<p5##_type>(gmock_p5)), \ 1286 p6(::std::forward<p6##_type>(gmock_p6)), \ 1287 p7(::std::forward<p7##_type>(gmock_p7)) {}\ 1288 template <typename F>\ 1289 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1291 typedef F function_type;\ 1292 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1293 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1295 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1296 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1297 p6##_type gmock_p6, \ 1298 p7##_type gmock_p7) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1299 p1(::std::forward<p1##_type>(gmock_p1)), \ 1300 p2(::std::forward<p2##_type>(gmock_p2)), \ 1301 p3(::std::forward<p3##_type>(gmock_p3)), \ 1302 p4(::std::forward<p4##_type>(gmock_p4)), \ 1303 p5(::std::forward<p5##_type>(gmock_p5)), \ 1304 p6(::std::forward<p6##_type>(gmock_p6)), \ 1305 p7(::std::forward<p7##_type>(gmock_p7)) {}\ 1306 virtual return_type Perform(const args_type& args) {\ 1307 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1308 Perform(this, args);\ 1310 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1311 typename arg3_type, typename arg4_type, typename arg5_type, \ 1312 typename arg6_type, typename arg7_type, typename arg8_type, \ 1313 typename arg9_type>\ 1314 return_type gmock_PerformImpl(const args_type& args, \ 1315 const arg0_type& arg0, const arg1_type& arg1, \ 1316 const arg2_type& arg2, const arg3_type& arg3, \ 1317 const arg4_type& arg4, const arg5_type& arg5, \ 1318 const arg6_type& arg6, const arg7_type& arg7, \ 1319 const arg8_type& arg8, const arg9_type& arg9) const;\ 1329 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1331 template <typename F> operator ::testing::Action<F>() const {\ 1332 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 1344 GTEST_DISALLOW_ASSIGN_(name##ActionP8);\ 1346 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1347 typename p3##_type, typename p4##_type, typename p5##_type, \ 1348 typename p6##_type, typename p7##_type>\ 1349 inline name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 1350 p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \ 1351 p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \ 1352 p6##_type p6, p7##_type p7) {\ 1353 return name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, \ 1354 p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \ 1357 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1358 typename p3##_type, typename p4##_type, typename p5##_type, \ 1359 typename p6##_type, typename p7##_type>\ 1360 template <typename F>\ 1361 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1362 typename arg3_type, typename arg4_type, typename arg5_type, \ 1363 typename arg6_type, typename arg7_type, typename arg8_type, \ 1364 typename arg9_type>\ 1365 typename ::testing::internal::Function<F>::Result\ 1366 name##ActionP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1367 p5##_type, p6##_type, \ 1368 p7##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1369 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1371 #define ACTION_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8)\ 1372 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1373 typename p3##_type, typename p4##_type, typename p5##_type, \ 1374 typename p6##_type, typename p7##_type, typename p8##_type>\ 1375 class name##ActionP9 {\ 1377 name##ActionP9(p0##_type gmock_p0, p1##_type gmock_p1, \ 1378 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 1379 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 1380 p8##_type gmock_p8) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1381 p1(::std::forward<p1##_type>(gmock_p1)), \ 1382 p2(::std::forward<p2##_type>(gmock_p2)), \ 1383 p3(::std::forward<p3##_type>(gmock_p3)), \ 1384 p4(::std::forward<p4##_type>(gmock_p4)), \ 1385 p5(::std::forward<p5##_type>(gmock_p5)), \ 1386 p6(::std::forward<p6##_type>(gmock_p6)), \ 1387 p7(::std::forward<p7##_type>(gmock_p7)), \ 1388 p8(::std::forward<p8##_type>(gmock_p8)) {}\ 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 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1397 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1398 p6##_type gmock_p6, p7##_type gmock_p7, \ 1399 p8##_type gmock_p8) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1400 p1(::std::forward<p1##_type>(gmock_p1)), \ 1401 p2(::std::forward<p2##_type>(gmock_p2)), \ 1402 p3(::std::forward<p3##_type>(gmock_p3)), \ 1403 p4(::std::forward<p4##_type>(gmock_p4)), \ 1404 p5(::std::forward<p5##_type>(gmock_p5)), \ 1405 p6(::std::forward<p6##_type>(gmock_p6)), \ 1406 p7(::std::forward<p7##_type>(gmock_p7)), \ 1407 p8(::std::forward<p8##_type>(gmock_p8)) {}\ 1408 virtual return_type Perform(const args_type& args) {\ 1409 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1410 Perform(this, args);\ 1412 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1413 typename arg3_type, typename arg4_type, typename arg5_type, \ 1414 typename arg6_type, typename arg7_type, typename arg8_type, \ 1415 typename arg9_type>\ 1416 return_type gmock_PerformImpl(const args_type& args, \ 1417 const arg0_type& arg0, const arg1_type& arg1, \ 1418 const arg2_type& arg2, const arg3_type& arg3, \ 1419 const arg4_type& arg4, const arg5_type& arg5, \ 1420 const arg6_type& arg6, const arg7_type& arg7, \ 1421 const arg8_type& arg8, const arg9_type& arg9) const;\ 1432 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1434 template <typename F> operator ::testing::Action<F>() const {\ 1435 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 1448 GTEST_DISALLOW_ASSIGN_(name##ActionP9);\ 1450 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1451 typename p3##_type, typename p4##_type, typename p5##_type, \ 1452 typename p6##_type, typename p7##_type, typename p8##_type>\ 1453 inline name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 1454 p4##_type, p5##_type, p6##_type, p7##_type, \ 1455 p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 1456 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \ 1458 return name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, \ 1459 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \ 1460 p3, p4, p5, p6, p7, p8);\ 1462 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1463 typename p3##_type, typename p4##_type, typename p5##_type, \ 1464 typename p6##_type, typename p7##_type, typename p8##_type>\ 1465 template <typename F>\ 1466 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1467 typename arg3_type, typename arg4_type, typename arg5_type, \ 1468 typename arg6_type, typename arg7_type, typename arg8_type, \ 1469 typename arg9_type>\ 1470 typename ::testing::internal::Function<F>::Result\ 1471 name##ActionP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1472 p5##_type, p6##_type, p7##_type, \ 1473 p8##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1474 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1476 #define ACTION_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)\ 1477 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1478 typename p3##_type, typename p4##_type, typename p5##_type, \ 1479 typename p6##_type, typename p7##_type, typename p8##_type, \ 1480 typename p9##_type>\ 1481 class name##ActionP10 {\ 1483 name##ActionP10(p0##_type gmock_p0, p1##_type gmock_p1, \ 1484 p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ 1485 p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ 1486 p8##_type gmock_p8, \ 1487 p9##_type gmock_p9) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1488 p1(::std::forward<p1##_type>(gmock_p1)), \ 1489 p2(::std::forward<p2##_type>(gmock_p2)), \ 1490 p3(::std::forward<p3##_type>(gmock_p3)), \ 1491 p4(::std::forward<p4##_type>(gmock_p4)), \ 1492 p5(::std::forward<p5##_type>(gmock_p5)), \ 1493 p6(::std::forward<p6##_type>(gmock_p6)), \ 1494 p7(::std::forward<p7##_type>(gmock_p7)), \ 1495 p8(::std::forward<p8##_type>(gmock_p8)), \ 1496 p9(::std::forward<p9##_type>(gmock_p9)) {}\ 1497 template <typename F>\ 1498 class gmock_Impl : public ::testing::ActionInterface<F> {\ 1500 typedef F function_type;\ 1501 typedef typename ::testing::internal::Function<F>::Result return_type;\ 1502 typedef typename ::testing::internal::Function<F>::ArgumentTuple\ 1504 gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ 1505 p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ 1506 p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ 1507 p9##_type gmock_p9) : p0(::std::forward<p0##_type>(gmock_p0)), \ 1508 p1(::std::forward<p1##_type>(gmock_p1)), \ 1509 p2(::std::forward<p2##_type>(gmock_p2)), \ 1510 p3(::std::forward<p3##_type>(gmock_p3)), \ 1511 p4(::std::forward<p4##_type>(gmock_p4)), \ 1512 p5(::std::forward<p5##_type>(gmock_p5)), \ 1513 p6(::std::forward<p6##_type>(gmock_p6)), \ 1514 p7(::std::forward<p7##_type>(gmock_p7)), \ 1515 p8(::std::forward<p8##_type>(gmock_p8)), \ 1516 p9(::std::forward<p9##_type>(gmock_p9)) {}\ 1517 virtual return_type Perform(const args_type& args) {\ 1518 return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\ 1519 Perform(this, args);\ 1521 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1522 typename arg3_type, typename arg4_type, typename arg5_type, \ 1523 typename arg6_type, typename arg7_type, typename arg8_type, \ 1524 typename arg9_type>\ 1525 return_type gmock_PerformImpl(const args_type& args, \ 1526 const arg0_type& arg0, const arg1_type& arg1, \ 1527 const arg2_type& arg2, const arg3_type& arg3, \ 1528 const arg4_type& arg4, const arg5_type& arg5, \ 1529 const arg6_type& arg6, const arg7_type& arg7, \ 1530 const arg8_type& arg8, const arg9_type& arg9) const;\ 1542 GTEST_DISALLOW_ASSIGN_(gmock_Impl);\ 1544 template <typename F> operator ::testing::Action<F>() const {\ 1545 return ::testing::Action<F>(new gmock_Impl<F>(p0, p1, p2, p3, p4, p5, \ 1559 GTEST_DISALLOW_ASSIGN_(name##ActionP10);\ 1561 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1562 typename p3##_type, typename p4##_type, typename p5##_type, \ 1563 typename p6##_type, typename p7##_type, typename p8##_type, \ 1564 typename p9##_type>\ 1565 inline name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 1566 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \ 1567 p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \ 1568 p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \ 1570 return name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, \ 1571 p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \ 1572 p1, p2, p3, p4, p5, p6, p7, p8, p9);\ 1574 template <typename p0##_type, typename p1##_type, typename p2##_type, \ 1575 typename p3##_type, typename p4##_type, typename p5##_type, \ 1576 typename p6##_type, typename p7##_type, typename p8##_type, \ 1577 typename p9##_type>\ 1578 template <typename F>\ 1579 template <typename arg0_type, typename arg1_type, typename arg2_type, \ 1580 typename arg3_type, typename arg4_type, typename arg5_type, \ 1581 typename arg6_type, typename arg7_type, typename arg8_type, \ 1582 typename arg9_type>\ 1583 typename ::testing::internal::Function<F>::Result\ 1584 name##ActionP10<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \ 1585 p5##_type, p6##_type, p7##_type, p8##_type, \ 1586 p9##_type>::gmock_Impl<F>::gmock_PerformImpl(\ 1587 GMOCK_ACTION_ARG_TYPES_AND_NAMES_UNUSED_) const 1598 # pragma warning(push) 1599 # pragma warning(disable:4100) 1632 namespace internal {
1633 namespace invoke_argument {
1644 template <
typename R,
typename F>
1648 template <
typename R,
typename F,
typename A1>
1652 template <
typename R,
typename F,
typename A1,
typename A2>
1656 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3>
1658 return f(a1, a2, a3);
1660 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3,
1663 return f(a1, a2, a3, a4);
1665 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3,
1666 typename A4,
typename A5>
1668 return f(a1, a2, a3, a4, a5);
1670 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3,
1671 typename A4,
typename A5,
typename A6>
1673 return f(a1, a2, a3, a4, a5, a6);
1675 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3,
1676 typename A4,
typename A5,
typename A6,
typename A7>
1679 return f(a1, a2, a3, a4, a5, a6, a7);
1681 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3,
1682 typename A4,
typename A5,
typename A6,
typename A7,
typename A8>
1685 return f(a1, a2, a3, a4, a5, a6, a7, a8);
1687 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3,
1688 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
1691 A7 a7, A8 a8, A9 a9) {
1692 return f(a1, a2, a3, a4, a5, a6, a7, a8, a9);
1694 template <
typename R,
typename F,
typename A1,
typename A2,
typename A3,
1695 typename A4,
typename A5,
typename A6,
typename A7,
typename A8,
1696 typename A9,
typename A10>
1698 A7 a7, A8 a8, A9 a9, A10 a10) {
1699 return f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
1705 HAS_1_TEMPLATE_PARAMS(
int, k),
1706 AND_0_VALUE_PARAMS()) {
1708 return InvokeArgumentAdl<return_type>(
1710 ::std::get<k>(args));
1714 HAS_1_TEMPLATE_PARAMS(
int, k),
1715 AND_1_VALUE_PARAMS(p0)) {
1717 return InvokeArgumentAdl<return_type>(
1719 ::std::get<k>(args), p0);
1723 HAS_1_TEMPLATE_PARAMS(
int, k),
1724 AND_2_VALUE_PARAMS(p0, p1)) {
1726 return InvokeArgumentAdl<return_type>(
1728 ::std::get<k>(args), p0, p1);
1732 HAS_1_TEMPLATE_PARAMS(
int, k),
1733 AND_3_VALUE_PARAMS(p0, p1, p2)) {
1735 return InvokeArgumentAdl<return_type>(
1737 ::std::get<k>(args), p0, p1, p2);
1741 HAS_1_TEMPLATE_PARAMS(
int, k),
1742 AND_4_VALUE_PARAMS(p0, p1, p2, p3)) {
1744 return InvokeArgumentAdl<return_type>(
1746 ::std::get<k>(args), p0, p1, p2, p3);
1750 HAS_1_TEMPLATE_PARAMS(
int, k),
1751 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)) {
1753 return InvokeArgumentAdl<return_type>(
1755 ::std::get<k>(args), p0, p1, p2, p3, p4);
1759 HAS_1_TEMPLATE_PARAMS(
int, k),
1760 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)) {
1762 return InvokeArgumentAdl<return_type>(
1764 ::std::get<k>(args), p0, p1, p2, p3, p4, p5);
1768 HAS_1_TEMPLATE_PARAMS(
int, k),
1769 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)) {
1771 return InvokeArgumentAdl<return_type>(
1773 ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6);
1777 HAS_1_TEMPLATE_PARAMS(
int, k),
1778 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)) {
1780 return InvokeArgumentAdl<return_type>(
1782 ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7);
1786 HAS_1_TEMPLATE_PARAMS(
int, k),
1787 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8)) {
1789 return InvokeArgumentAdl<return_type>(
1791 ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8);
1795 HAS_1_TEMPLATE_PARAMS(
int, k),
1796 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) {
1798 return InvokeArgumentAdl<return_type>(
1800 ::std::get<k>(args), p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
1809 HAS_1_TEMPLATE_PARAMS(
typename, T),
1810 AND_0_VALUE_PARAMS()) {
1815 HAS_1_TEMPLATE_PARAMS(
typename, T),
1816 AND_1_VALUE_PARAMS(p0)) {
1821 HAS_1_TEMPLATE_PARAMS(
typename, T),
1822 AND_2_VALUE_PARAMS(p0, p1)) {
1823 return new T(p0, p1);
1827 HAS_1_TEMPLATE_PARAMS(
typename, T),
1828 AND_3_VALUE_PARAMS(p0, p1, p2)) {
1829 return new T(p0, p1, p2);
1833 HAS_1_TEMPLATE_PARAMS(
typename, T),
1834 AND_4_VALUE_PARAMS(p0, p1, p2, p3)) {
1835 return new T(p0, p1, p2, p3);
1839 HAS_1_TEMPLATE_PARAMS(
typename, T),
1840 AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)) {
1841 return new T(p0, p1, p2, p3, p4);
1845 HAS_1_TEMPLATE_PARAMS(
typename, T),
1846 AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)) {
1847 return new T(p0, p1, p2, p3, p4, p5);
1851 HAS_1_TEMPLATE_PARAMS(
typename, T),
1852 AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)) {
1853 return new T(p0, p1, p2, p3, p4, p5, p6);
1857 HAS_1_TEMPLATE_PARAMS(
typename, T),
1858 AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)) {
1859 return new T(p0, p1, p2, p3, p4, p5, p6, p7);
1863 HAS_1_TEMPLATE_PARAMS(
typename, T),
1864 AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8)) {
1865 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8);
1869 HAS_1_TEMPLATE_PARAMS(
typename, T),
1870 AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)) {
1871 return new T(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
1875 # pragma warning(pop) 1885 #endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ Definition: gmock-actions.h:59
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8 > &args)
Definition: gmock-generated-actions.h:153
Definition: gmock-generated-actions.h:71
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 > &args)
Definition: gmock-generated-actions.h:164
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2 > &args)
Definition: gmock-generated-actions.h:97
R InvokeArgumentAdl(AdlTag, F f)
Definition: gmock-generated-actions.h:1645
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2, A3, A4, A5, A6 > &args)
Definition: gmock-generated-actions.h:133
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2, A3 > &args)
Definition: gmock-generated-actions.h:105
ACTION_TEMPLATE(InvokeArgument, HAS_1_TEMPLATE_PARAMS(int, k), AND_0_VALUE_PARAMS())
Definition: gmock-generated-actions.h:1704
static Result Perform(Impl *impl, const ::std::tuple< A0, A1 > &args)
Definition: gmock-generated-actions.h:89
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2, A3, A4, A5 > &args)
Definition: gmock-generated-actions.h:123
static Result Perform(Impl *impl, const ::std::tuple<> &args)
Definition: gmock-generated-actions.h:73
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2, A3, A4, A5, A6, A7 > &args)
Definition: gmock-generated-actions.h:143
R InvokeArgumentAdl(AdlTag, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
Definition: gmock-generated-actions.h:1697
Definition: gmock-generated-actions.h:67
static Result Perform(Impl *impl, const ::std::tuple< A0 > &args)
Definition: gmock-generated-actions.h:81
static Result Perform(Impl *impl, const ::std::tuple< A0, A1, A2, A3, A4 > &args)
Definition: gmock-generated-actions.h:113
Definition: gmock-generated-actions.h:1637