gmock-generated-internal-utils.h revision 13481
113481Sgiacomo.travaglini@arm.com// This file was GENERATED by command: 213481Sgiacomo.travaglini@arm.com// pump.py gmock-generated-internal-utils.h.pump 313481Sgiacomo.travaglini@arm.com// DO NOT EDIT BY HAND!!! 413481Sgiacomo.travaglini@arm.com 513481Sgiacomo.travaglini@arm.com// Copyright 2007, Google Inc. 613481Sgiacomo.travaglini@arm.com// All rights reserved. 713481Sgiacomo.travaglini@arm.com// 813481Sgiacomo.travaglini@arm.com// Redistribution and use in source and binary forms, with or without 913481Sgiacomo.travaglini@arm.com// modification, are permitted provided that the following conditions are 1013481Sgiacomo.travaglini@arm.com// met: 1113481Sgiacomo.travaglini@arm.com// 1213481Sgiacomo.travaglini@arm.com// * Redistributions of source code must retain the above copyright 1313481Sgiacomo.travaglini@arm.com// notice, this list of conditions and the following disclaimer. 1413481Sgiacomo.travaglini@arm.com// * Redistributions in binary form must reproduce the above 1513481Sgiacomo.travaglini@arm.com// copyright notice, this list of conditions and the following disclaimer 1613481Sgiacomo.travaglini@arm.com// in the documentation and/or other materials provided with the 1713481Sgiacomo.travaglini@arm.com// distribution. 1813481Sgiacomo.travaglini@arm.com// * Neither the name of Google Inc. nor the names of its 1913481Sgiacomo.travaglini@arm.com// contributors may be used to endorse or promote products derived from 2013481Sgiacomo.travaglini@arm.com// this software without specific prior written permission. 2113481Sgiacomo.travaglini@arm.com// 2213481Sgiacomo.travaglini@arm.com// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2313481Sgiacomo.travaglini@arm.com// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2413481Sgiacomo.travaglini@arm.com// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2513481Sgiacomo.travaglini@arm.com// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2613481Sgiacomo.travaglini@arm.com// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2713481Sgiacomo.travaglini@arm.com// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2813481Sgiacomo.travaglini@arm.com// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2913481Sgiacomo.travaglini@arm.com// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3013481Sgiacomo.travaglini@arm.com// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3113481Sgiacomo.travaglini@arm.com// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3213481Sgiacomo.travaglini@arm.com// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3313481Sgiacomo.travaglini@arm.com// 3413481Sgiacomo.travaglini@arm.com// Author: wan@google.com (Zhanyong Wan) 3513481Sgiacomo.travaglini@arm.com 3613481Sgiacomo.travaglini@arm.com// Google Mock - a framework for writing C++ mock classes. 3713481Sgiacomo.travaglini@arm.com// 3813481Sgiacomo.travaglini@arm.com// This file contains template meta-programming utility classes needed 3913481Sgiacomo.travaglini@arm.com// for implementing Google Mock. 4013481Sgiacomo.travaglini@arm.com 4113481Sgiacomo.travaglini@arm.com#ifndef GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_GENERATED_INTERNAL_UTILS_H_ 4213481Sgiacomo.travaglini@arm.com#define GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_GENERATED_INTERNAL_UTILS_H_ 4313481Sgiacomo.travaglini@arm.com 4413481Sgiacomo.travaglini@arm.com#include "gmock/internal/gmock-port.h" 4513481Sgiacomo.travaglini@arm.com 4613481Sgiacomo.travaglini@arm.comnamespace testing { 4713481Sgiacomo.travaglini@arm.com 4813481Sgiacomo.travaglini@arm.comtemplate <typename T> 4913481Sgiacomo.travaglini@arm.comclass Matcher; 5013481Sgiacomo.travaglini@arm.com 5113481Sgiacomo.travaglini@arm.comnamespace internal { 5213481Sgiacomo.travaglini@arm.com 5313481Sgiacomo.travaglini@arm.com// An IgnoredValue object can be implicitly constructed from ANY value. 5413481Sgiacomo.travaglini@arm.com// This is used in implementing the IgnoreResult(a) action. 5513481Sgiacomo.travaglini@arm.comclass IgnoredValue { 5613481Sgiacomo.travaglini@arm.com public: 5713481Sgiacomo.travaglini@arm.com // This constructor template allows any value to be implicitly 5813481Sgiacomo.travaglini@arm.com // converted to IgnoredValue. The object has no data member and 5913481Sgiacomo.travaglini@arm.com // doesn't try to remember anything about the argument. We 6013481Sgiacomo.travaglini@arm.com // deliberately omit the 'explicit' keyword in order to allow the 6113481Sgiacomo.travaglini@arm.com // conversion to be implicit. 6213481Sgiacomo.travaglini@arm.com template <typename T> 6313481Sgiacomo.travaglini@arm.com IgnoredValue(const T& /* ignored */) {} // NOLINT(runtime/explicit) 6413481Sgiacomo.travaglini@arm.com}; 6513481Sgiacomo.travaglini@arm.com 6613481Sgiacomo.travaglini@arm.com// MatcherTuple<T>::type is a tuple type where each field is a Matcher 6713481Sgiacomo.travaglini@arm.com// for the corresponding field in tuple type T. 6813481Sgiacomo.travaglini@arm.comtemplate <typename Tuple> 6913481Sgiacomo.travaglini@arm.comstruct MatcherTuple; 7013481Sgiacomo.travaglini@arm.com 7113481Sgiacomo.travaglini@arm.comtemplate <> 7213481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<> > { 7313481Sgiacomo.travaglini@arm.com typedef ::testing::tuple< > type; 7413481Sgiacomo.travaglini@arm.com}; 7513481Sgiacomo.travaglini@arm.com 7613481Sgiacomo.travaglini@arm.comtemplate <typename A1> 7713481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1> > { 7813481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1> > type; 7913481Sgiacomo.travaglini@arm.com}; 8013481Sgiacomo.travaglini@arm.com 8113481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2> 8213481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2> > { 8313481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2> > type; 8413481Sgiacomo.travaglini@arm.com}; 8513481Sgiacomo.travaglini@arm.com 8613481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3> 8713481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3> > { 8813481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3> > type; 8913481Sgiacomo.travaglini@arm.com}; 9013481Sgiacomo.travaglini@arm.com 9113481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3, typename A4> 9213481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3, A4> > { 9313481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3>, 9413481Sgiacomo.travaglini@arm.com Matcher<A4> > type; 9513481Sgiacomo.travaglini@arm.com}; 9613481Sgiacomo.travaglini@arm.com 9713481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3, typename A4, typename A5> 9813481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3, A4, A5> > { 9913481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3>, Matcher<A4>, 10013481Sgiacomo.travaglini@arm.com Matcher<A5> > type; 10113481Sgiacomo.travaglini@arm.com}; 10213481Sgiacomo.travaglini@arm.com 10313481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3, typename A4, typename A5, 10413481Sgiacomo.travaglini@arm.com typename A6> 10513481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3, A4, A5, A6> > { 10613481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3>, Matcher<A4>, 10713481Sgiacomo.travaglini@arm.com Matcher<A5>, Matcher<A6> > type; 10813481Sgiacomo.travaglini@arm.com}; 10913481Sgiacomo.travaglini@arm.com 11013481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3, typename A4, typename A5, 11113481Sgiacomo.travaglini@arm.com typename A6, typename A7> 11213481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3, A4, A5, A6, A7> > { 11313481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3>, Matcher<A4>, 11413481Sgiacomo.travaglini@arm.com Matcher<A5>, Matcher<A6>, Matcher<A7> > type; 11513481Sgiacomo.travaglini@arm.com}; 11613481Sgiacomo.travaglini@arm.com 11713481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3, typename A4, typename A5, 11813481Sgiacomo.travaglini@arm.com typename A6, typename A7, typename A8> 11913481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8> > { 12013481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3>, Matcher<A4>, 12113481Sgiacomo.travaglini@arm.com Matcher<A5>, Matcher<A6>, Matcher<A7>, Matcher<A8> > type; 12213481Sgiacomo.travaglini@arm.com}; 12313481Sgiacomo.travaglini@arm.com 12413481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3, typename A4, typename A5, 12513481Sgiacomo.travaglini@arm.com typename A6, typename A7, typename A8, typename A9> 12613481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9> > { 12713481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3>, Matcher<A4>, 12813481Sgiacomo.travaglini@arm.com Matcher<A5>, Matcher<A6>, Matcher<A7>, Matcher<A8>, Matcher<A9> > type; 12913481Sgiacomo.travaglini@arm.com}; 13013481Sgiacomo.travaglini@arm.com 13113481Sgiacomo.travaglini@arm.comtemplate <typename A1, typename A2, typename A3, typename A4, typename A5, 13213481Sgiacomo.travaglini@arm.com typename A6, typename A7, typename A8, typename A9, typename A10> 13313481Sgiacomo.travaglini@arm.comstruct MatcherTuple< ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9, 13413481Sgiacomo.travaglini@arm.com A10> > { 13513481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<Matcher<A1>, Matcher<A2>, Matcher<A3>, Matcher<A4>, 13613481Sgiacomo.travaglini@arm.com Matcher<A5>, Matcher<A6>, Matcher<A7>, Matcher<A8>, Matcher<A9>, 13713481Sgiacomo.travaglini@arm.com Matcher<A10> > type; 13813481Sgiacomo.travaglini@arm.com}; 13913481Sgiacomo.travaglini@arm.com 14013481Sgiacomo.travaglini@arm.com// Template struct Function<F>, where F must be a function type, contains 14113481Sgiacomo.travaglini@arm.com// the following typedefs: 14213481Sgiacomo.travaglini@arm.com// 14313481Sgiacomo.travaglini@arm.com// Result: the function's return type. 14413481Sgiacomo.travaglini@arm.com// ArgumentN: the type of the N-th argument, where N starts with 1. 14513481Sgiacomo.travaglini@arm.com// ArgumentTuple: the tuple type consisting of all parameters of F. 14613481Sgiacomo.travaglini@arm.com// ArgumentMatcherTuple: the tuple type consisting of Matchers for all 14713481Sgiacomo.travaglini@arm.com// parameters of F. 14813481Sgiacomo.travaglini@arm.com// MakeResultVoid: the function type obtained by substituting void 14913481Sgiacomo.travaglini@arm.com// for the return type of F. 15013481Sgiacomo.travaglini@arm.com// MakeResultIgnoredValue: 15113481Sgiacomo.travaglini@arm.com// the function type obtained by substituting Something 15213481Sgiacomo.travaglini@arm.com// for the return type of F. 15313481Sgiacomo.travaglini@arm.comtemplate <typename F> 15413481Sgiacomo.travaglini@arm.comstruct Function; 15513481Sgiacomo.travaglini@arm.com 15613481Sgiacomo.travaglini@arm.comtemplate <typename R> 15713481Sgiacomo.travaglini@arm.comstruct Function<R()> { 15813481Sgiacomo.travaglini@arm.com typedef R Result; 15913481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<> ArgumentTuple; 16013481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 16113481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(); 16213481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(); 16313481Sgiacomo.travaglini@arm.com}; 16413481Sgiacomo.travaglini@arm.com 16513481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1> 16613481Sgiacomo.travaglini@arm.comstruct Function<R(A1)> 16713481Sgiacomo.travaglini@arm.com : Function<R()> { 16813481Sgiacomo.travaglini@arm.com typedef A1 Argument1; 16913481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1> ArgumentTuple; 17013481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 17113481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1); 17213481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1); 17313481Sgiacomo.travaglini@arm.com}; 17413481Sgiacomo.travaglini@arm.com 17513481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2> 17613481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2)> 17713481Sgiacomo.travaglini@arm.com : Function<R(A1)> { 17813481Sgiacomo.travaglini@arm.com typedef A2 Argument2; 17913481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2> ArgumentTuple; 18013481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 18113481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2); 18213481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2); 18313481Sgiacomo.travaglini@arm.com}; 18413481Sgiacomo.travaglini@arm.com 18513481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3> 18613481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3)> 18713481Sgiacomo.travaglini@arm.com : Function<R(A1, A2)> { 18813481Sgiacomo.travaglini@arm.com typedef A3 Argument3; 18913481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3> ArgumentTuple; 19013481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 19113481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3); 19213481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3); 19313481Sgiacomo.travaglini@arm.com}; 19413481Sgiacomo.travaglini@arm.com 19513481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3, typename A4> 19613481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3, A4)> 19713481Sgiacomo.travaglini@arm.com : Function<R(A1, A2, A3)> { 19813481Sgiacomo.travaglini@arm.com typedef A4 Argument4; 19913481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3, A4> ArgumentTuple; 20013481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 20113481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3, A4); 20213481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4); 20313481Sgiacomo.travaglini@arm.com}; 20413481Sgiacomo.travaglini@arm.com 20513481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3, typename A4, 20613481Sgiacomo.travaglini@arm.com typename A5> 20713481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3, A4, A5)> 20813481Sgiacomo.travaglini@arm.com : Function<R(A1, A2, A3, A4)> { 20913481Sgiacomo.travaglini@arm.com typedef A5 Argument5; 21013481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3, A4, A5> ArgumentTuple; 21113481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 21213481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3, A4, A5); 21313481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5); 21413481Sgiacomo.travaglini@arm.com}; 21513481Sgiacomo.travaglini@arm.com 21613481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3, typename A4, 21713481Sgiacomo.travaglini@arm.com typename A5, typename A6> 21813481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3, A4, A5, A6)> 21913481Sgiacomo.travaglini@arm.com : Function<R(A1, A2, A3, A4, A5)> { 22013481Sgiacomo.travaglini@arm.com typedef A6 Argument6; 22113481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3, A4, A5, A6> ArgumentTuple; 22213481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 22313481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3, A4, A5, A6); 22413481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6); 22513481Sgiacomo.travaglini@arm.com}; 22613481Sgiacomo.travaglini@arm.com 22713481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3, typename A4, 22813481Sgiacomo.travaglini@arm.com typename A5, typename A6, typename A7> 22913481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3, A4, A5, A6, A7)> 23013481Sgiacomo.travaglini@arm.com : Function<R(A1, A2, A3, A4, A5, A6)> { 23113481Sgiacomo.travaglini@arm.com typedef A7 Argument7; 23213481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3, A4, A5, A6, A7> ArgumentTuple; 23313481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 23413481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7); 23513481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7); 23613481Sgiacomo.travaglini@arm.com}; 23713481Sgiacomo.travaglini@arm.com 23813481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3, typename A4, 23913481Sgiacomo.travaglini@arm.com typename A5, typename A6, typename A7, typename A8> 24013481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3, A4, A5, A6, A7, A8)> 24113481Sgiacomo.travaglini@arm.com : Function<R(A1, A2, A3, A4, A5, A6, A7)> { 24213481Sgiacomo.travaglini@arm.com typedef A8 Argument8; 24313481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8> ArgumentTuple; 24413481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 24513481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7, A8); 24613481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7, A8); 24713481Sgiacomo.travaglini@arm.com}; 24813481Sgiacomo.travaglini@arm.com 24913481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3, typename A4, 25013481Sgiacomo.travaglini@arm.com typename A5, typename A6, typename A7, typename A8, typename A9> 25113481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> 25213481Sgiacomo.travaglini@arm.com : Function<R(A1, A2, A3, A4, A5, A6, A7, A8)> { 25313481Sgiacomo.travaglini@arm.com typedef A9 Argument9; 25413481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9> ArgumentTuple; 25513481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 25613481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7, A8, A9); 25713481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7, A8, 25813481Sgiacomo.travaglini@arm.com A9); 25913481Sgiacomo.travaglini@arm.com}; 26013481Sgiacomo.travaglini@arm.com 26113481Sgiacomo.travaglini@arm.comtemplate <typename R, typename A1, typename A2, typename A3, typename A4, 26213481Sgiacomo.travaglini@arm.com typename A5, typename A6, typename A7, typename A8, typename A9, 26313481Sgiacomo.travaglini@arm.com typename A10> 26413481Sgiacomo.travaglini@arm.comstruct Function<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> 26513481Sgiacomo.travaglini@arm.com : Function<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> { 26613481Sgiacomo.travaglini@arm.com typedef A10 Argument10; 26713481Sgiacomo.travaglini@arm.com typedef ::testing::tuple<A1, A2, A3, A4, A5, A6, A7, A8, A9, 26813481Sgiacomo.travaglini@arm.com A10> ArgumentTuple; 26913481Sgiacomo.travaglini@arm.com typedef typename MatcherTuple<ArgumentTuple>::type ArgumentMatcherTuple; 27013481Sgiacomo.travaglini@arm.com typedef void MakeResultVoid(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10); 27113481Sgiacomo.travaglini@arm.com typedef IgnoredValue MakeResultIgnoredValue(A1, A2, A3, A4, A5, A6, A7, A8, 27213481Sgiacomo.travaglini@arm.com A9, A10); 27313481Sgiacomo.travaglini@arm.com}; 27413481Sgiacomo.travaglini@arm.com 27513481Sgiacomo.travaglini@arm.com} // namespace internal 27613481Sgiacomo.travaglini@arm.com 27713481Sgiacomo.travaglini@arm.com} // namespace testing 27813481Sgiacomo.travaglini@arm.com 27913481Sgiacomo.travaglini@arm.com#endif // GMOCK_INCLUDE_GMOCK_INTERNAL_GMOCK_GENERATED_INTERNAL_UTILS_H_ 280