".github/vscode:/vscode.git/clone" did not exist on "0c771962b3e3070665860485dab0a0f57ea8b921"
gmock-generated-matchers.h 32.5 KB
Newer Older
1
2
3
// This file was GENERATED by command:
//     pump.py gmock-generated-matchers.h.pump
// DO NOT EDIT BY HAND!!!
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

// Copyright 2008, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//     * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

// Google Mock - a framework for writing C++ mock classes.
//
// This file implements some commonly used variadic matchers.

Gennadiy Civil's avatar
 
Gennadiy Civil committed
38
39
// GOOGLETEST_CM0002 DO NOT DELETE

40
41
42
#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_
#define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_

43
#include <iterator>
44
45
#include <sstream>
#include <string>
Abseil Team's avatar
Abseil Team committed
46
#include <utility>
47
#include <vector>
48
#include "gmock/gmock-matchers.h"
49

Abseil Team's avatar
Abseil Team committed
50
#define GMOCK_INTERNAL_MATCHER(name, description)\
Abseil Team's avatar
Abseil Team committed
51
52
  class name##Matcher : public \
      ::testing::internal::MatcherBaseImpl<name##Matcher> {\
zhanyong.wan's avatar
zhanyong.wan committed
53
   public:\
Abseil Team's avatar
Abseil Team committed
54
    using name##Matcher::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
55
    template <typename arg_type>\
56
57
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
58
     public:\
59
60
      gmock_Impl()\
           {}\
Robert Luberda's avatar
Robert Luberda committed
61
      bool MatchAndExplain(\
62
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
63
64
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
65
66
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
67
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
68
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
69
      }\
70
     private:\
71
72
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
73
        if (!gmock_description.empty()) {\
74
          return gmock_description;\
75
        }\
76
        return ::testing::internal::FormatMatcherDescription(\
77
            negation, #name, \
78
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
79
                ::std::tuple<>()));\
80
      }\
zhanyong.wan's avatar
zhanyong.wan committed
81
82
83
84
85
86
    };\
  };\
  inline name##Matcher name() {\
    return name##Matcher();\
  }\
  template <typename arg_type>\
zhanyong.wan's avatar
zhanyong.wan committed
87
  bool name##Matcher::gmock_Impl<arg_type>::MatchAndExplain(\
88
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
89
90
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
91

Abseil Team's avatar
Abseil Team committed
92
#define GMOCK_INTERNAL_MATCHER_P(name, description, p0)\
zhanyong.wan's avatar
zhanyong.wan committed
93
  template <typename p0##_type>\
Abseil Team's avatar
Abseil Team committed
94
95
  class name##MatcherP : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP<p0##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
96
   public:\
Abseil Team's avatar
Abseil Team committed
97
    using name##MatcherP::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
98
    template <typename arg_type>\
99
100
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
101
     public:\
102
      explicit gmock_Impl(p0##_type gmock_p0)\
Abseil Team's avatar
Abseil Team committed
103
           : p0(::std::move(gmock_p0)) {}\
Robert Luberda's avatar
Robert Luberda committed
104
      bool MatchAndExplain(\
105
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
106
107
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
108
109
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
110
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
111
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
112
      }\
113
      p0##_type const p0;\
114
     private:\
115
116
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
117
        if (!gmock_description.empty()) {\
118
          return gmock_description;\
119
        }\
120
        return ::testing::internal::FormatMatcherDescription(\
121
            negation, #name, \
122
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
123
                ::std::tuple<p0##_type>(p0)));\
124
      }\
zhanyong.wan's avatar
zhanyong.wan committed
125
126
127
128
129
130
131
132
    };\
  };\
  template <typename p0##_type>\
  inline name##MatcherP<p0##_type> name(p0##_type p0) {\
    return name##MatcherP<p0##_type>(p0);\
  }\
  template <typename p0##_type>\
  template <typename arg_type>\
zhanyong.wan's avatar
zhanyong.wan committed
133
  bool name##MatcherP<p0##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
134
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
135
136
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
137

Abseil Team's avatar
Abseil Team committed
138
#define GMOCK_INTERNAL_MATCHER_P2(name, description, p0, p1)\
zhanyong.wan's avatar
zhanyong.wan committed
139
  template <typename p0##_type, typename p1##_type>\
Abseil Team's avatar
Abseil Team committed
140
141
142
  class name##MatcherP2 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP2<p0##_type, \
      p1##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
143
   public:\
Abseil Team's avatar
Abseil Team committed
144
    using name##MatcherP2::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
145
    template <typename arg_type>\
146
147
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
148
     public:\
149
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1)\
Abseil Team's avatar
Abseil Team committed
150
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)) {}\
Robert Luberda's avatar
Robert Luberda committed
151
      bool MatchAndExplain(\
152
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
153
154
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
155
156
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
157
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
158
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
159
      }\
160
161
      p0##_type const p0;\
      p1##_type const p1;\
162
     private:\
163
164
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
165
        if (!gmock_description.empty()) {\
166
          return gmock_description;\
167
        }\
168
        return ::testing::internal::FormatMatcherDescription(\
169
            negation, #name, \
170
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
171
                ::std::tuple<p0##_type, p1##_type>(p0, p1)));\
172
      }\
zhanyong.wan's avatar
zhanyong.wan committed
173
174
175
176
177
178
179
180
181
    };\
  };\
  template <typename p0##_type, typename p1##_type>\
  inline name##MatcherP2<p0##_type, p1##_type> name(p0##_type p0, \
      p1##_type p1) {\
    return name##MatcherP2<p0##_type, p1##_type>(p0, p1);\
  }\
  template <typename p0##_type, typename p1##_type>\
  template <typename arg_type>\
zhanyong.wan's avatar
zhanyong.wan committed
182
183
  bool name##MatcherP2<p0##_type, \
      p1##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
184
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
185
186
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
187

Abseil Team's avatar
Abseil Team committed
188
#define GMOCK_INTERNAL_MATCHER_P3(name, description, p0, p1, p2)\
zhanyong.wan's avatar
zhanyong.wan committed
189
  template <typename p0##_type, typename p1##_type, typename p2##_type>\
Abseil Team's avatar
Abseil Team committed
190
191
192
  class name##MatcherP3 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP3<p0##_type, \
      p1##_type, p2##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
193
   public:\
Abseil Team's avatar
Abseil Team committed
194
    using name##MatcherP3::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
195
    template <typename arg_type>\
196
197
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
198
     public:\
199
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2)\
Abseil Team's avatar
Abseil Team committed
200
201
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)) {}\
Robert Luberda's avatar
Robert Luberda committed
202
      bool MatchAndExplain(\
203
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
204
205
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
206
207
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
208
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
209
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
210
      }\
211
212
213
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
214
     private:\
215
216
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
217
        if (!gmock_description.empty()) {\
218
          return gmock_description;\
219
        }\
220
        return ::testing::internal::FormatMatcherDescription(\
221
            negation, #name, \
222
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
223
                ::std::tuple<p0##_type, p1##_type, p2##_type>(p0, p1, p2)));\
224
      }\
zhanyong.wan's avatar
zhanyong.wan committed
225
226
227
228
229
230
231
232
233
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type>\
  inline name##MatcherP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \
      p1##_type p1, p2##_type p2) {\
    return name##MatcherP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type>\
  template <typename arg_type>\
zhanyong.wan's avatar
zhanyong.wan committed
234
235
  bool name##MatcherP3<p0##_type, p1##_type, \
      p2##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
236
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
237
238
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
239

Abseil Team's avatar
Abseil Team committed
240
#define GMOCK_INTERNAL_MATCHER_P4(name, description, p0, p1, p2, p3)\
zhanyong.wan's avatar
zhanyong.wan committed
241
242
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type>\
Abseil Team's avatar
Abseil Team committed
243
244
245
  class name##MatcherP4 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP4<p0##_type, \
      p1##_type, p2##_type, p3##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
246
   public:\
Abseil Team's avatar
Abseil Team committed
247
    using name##MatcherP4::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
248
    template <typename arg_type>\
249
250
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
251
252
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
253
          p3##_type gmock_p3)\
Abseil Team's avatar
Abseil Team committed
254
255
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)) {}\
Robert Luberda's avatar
Robert Luberda committed
256
      bool MatchAndExplain(\
257
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
258
259
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
260
261
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
262
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
263
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
264
      }\
265
266
267
268
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
269
     private:\
270
271
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
272
        if (!gmock_description.empty()) {\
273
          return gmock_description;\
274
        }\
275
        return ::testing::internal::FormatMatcherDescription(\
276
            negation, #name, \
277
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
278
279
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type>(p0, \
                    p1, p2, p3)));\
280
      }\
zhanyong.wan's avatar
zhanyong.wan committed
281
282
283
284
285
286
287
288
289
290
291
292
293
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type>\
  inline name##MatcherP4<p0##_type, p1##_type, p2##_type, \
      p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
      p3##_type p3) {\
    return name##MatcherP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, \
        p1, p2, p3);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type>\
  template <typename arg_type>\
zhanyong.wan's avatar
zhanyong.wan committed
294
295
  bool name##MatcherP4<p0##_type, p1##_type, p2##_type, \
      p3##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
296
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
297
298
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
299

Abseil Team's avatar
Abseil Team committed
300
#define GMOCK_INTERNAL_MATCHER_P5(name, description, p0, p1, p2, p3, p4)\
zhanyong.wan's avatar
zhanyong.wan committed
301
302
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type>\
Abseil Team's avatar
Abseil Team committed
303
304
305
  class name##MatcherP5 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP5<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
306
   public:\
Abseil Team's avatar
Abseil Team committed
307
    using name##MatcherP5::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
308
    template <typename arg_type>\
309
310
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
311
312
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
313
          p3##_type gmock_p3, p4##_type gmock_p4)\
Abseil Team's avatar
Abseil Team committed
314
315
316
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \
               p4(::std::move(gmock_p4)) {}\
Robert Luberda's avatar
Robert Luberda committed
317
      bool MatchAndExplain(\
318
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
319
320
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
321
322
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
323
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
324
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
325
      }\
326
327
328
329
330
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
      p4##_type const p4;\
331
     private:\
332
333
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
334
        if (!gmock_description.empty()) {\
335
          return gmock_description;\
336
        }\
337
        return ::testing::internal::FormatMatcherDescription(\
338
            negation, #name, \
339
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
340
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
341
342
                    p4##_type>(p0, p1, p2, p3, p4)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
343
344
345
346
347
348
349
350
351
352
353
354
355
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type>\
  inline name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \
      p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
      p4##_type p4) {\
    return name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \
        p4##_type>(p0, p1, p2, p3, p4);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type>\
  template <typename arg_type>\
zhanyong.wan's avatar
zhanyong.wan committed
356
357
  bool name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \
      p4##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
358
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
359
360
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
361

Abseil Team's avatar
Abseil Team committed
362
#define GMOCK_INTERNAL_MATCHER_P6(name, description, p0, p1, p2, p3, p4, p5)\
zhanyong.wan's avatar
zhanyong.wan committed
363
364
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type>\
Abseil Team's avatar
Abseil Team committed
365
366
367
  class name##MatcherP6 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP6<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type, p5##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
368
   public:\
Abseil Team's avatar
Abseil Team committed
369
    using name##MatcherP6::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
370
    template <typename arg_type>\
371
372
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
373
374
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
375
          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5)\
Abseil Team's avatar
Abseil Team committed
376
377
378
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \
               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)) {}\
Robert Luberda's avatar
Robert Luberda committed
379
      bool MatchAndExplain(\
380
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
381
382
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
383
384
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
385
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
386
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
387
      }\
388
389
390
391
392
393
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
      p4##_type const p4;\
      p5##_type const p5;\
394
     private:\
395
396
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
397
        if (!gmock_description.empty()) {\
398
          return gmock_description;\
399
        }\
400
        return ::testing::internal::FormatMatcherDescription(\
401
            negation, #name, \
402
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
403
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
404
405
                    p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
406
407
408
409
410
411
412
413
414
415
416
417
418
419
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type>\
  inline name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \
      p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \
      p3##_type p3, p4##_type p4, p5##_type p5) {\
    return name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \
        p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type>\
  template <typename arg_type>\
  bool name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
zhanyong.wan's avatar
zhanyong.wan committed
420
      p5##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
421
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
422
423
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
424

Abseil Team's avatar
Abseil Team committed
425
426
#define GMOCK_INTERNAL_MATCHER_P7(name, description, p0, p1, p2, p3, p4, p5, \
    p6)\
zhanyong.wan's avatar
zhanyong.wan committed
427
428
429
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type>\
Abseil Team's avatar
Abseil Team committed
430
431
432
  class name##MatcherP7 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP7<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, p6##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
433
   public:\
Abseil Team's avatar
Abseil Team committed
434
    using name##MatcherP7::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
435
    template <typename arg_type>\
436
437
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
438
439
440
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
441
          p6##_type gmock_p6)\
Abseil Team's avatar
Abseil Team committed
442
443
444
445
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \
               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \
               p6(::std::move(gmock_p6)) {}\
Robert Luberda's avatar
Robert Luberda committed
446
      bool MatchAndExplain(\
447
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
448
449
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
450
451
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
452
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
453
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
454
      }\
455
456
457
458
459
460
461
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
      p4##_type const p4;\
      p5##_type const p5;\
      p6##_type const p6;\
462
     private:\
463
464
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
465
        if (!gmock_description.empty()) {\
466
          return gmock_description;\
467
        }\
468
        return ::testing::internal::FormatMatcherDescription(\
469
            negation, #name, \
470
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
471
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
472
473
474
                    p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, \
                    p6)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type>\
  inline name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \
      p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \
      p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
      p6##_type p6) {\
    return name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \
        p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type>\
  template <typename arg_type>\
  bool name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
zhanyong.wan's avatar
zhanyong.wan committed
492
      p5##_type, p6##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
493
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
494
495
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
496

Abseil Team's avatar
Abseil Team committed
497
498
#define GMOCK_INTERNAL_MATCHER_P8(name, description, p0, p1, p2, p3, p4, p5, \
    p6, p7)\
zhanyong.wan's avatar
zhanyong.wan committed
499
500
501
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type>\
Abseil Team's avatar
Abseil Team committed
502
503
504
505
  class name##MatcherP8 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP8<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, p6##_type, \
      p7##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
506
   public:\
Abseil Team's avatar
Abseil Team committed
507
    using name##MatcherP8::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
508
    template <typename arg_type>\
509
510
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
511
512
513
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
514
          p6##_type gmock_p6, p7##_type gmock_p7)\
Abseil Team's avatar
Abseil Team committed
515
516
517
518
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \
               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \
               p6(::std::move(gmock_p6)), p7(::std::move(gmock_p7)) {}\
Robert Luberda's avatar
Robert Luberda committed
519
      bool MatchAndExplain(\
520
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
521
522
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
523
524
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
525
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
526
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
527
      }\
528
529
530
531
532
533
534
535
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
      p4##_type const p4;\
      p5##_type const p5;\
      p6##_type const p6;\
      p7##_type const p7;\
536
     private:\
537
538
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
539
        if (!gmock_description.empty()) {\
540
          return gmock_description;\
541
        }\
542
        return ::testing::internal::FormatMatcherDescription(\
543
            negation, #name, \
544
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
545
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
546
547
548
                    p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, \
                    p3, p4, p5, p6, p7)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type>\
  inline name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \
      p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \
      p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \
      p6##_type p6, p7##_type p7) {\
    return name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \
        p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \
        p6, p7);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type>\
  template <typename arg_type>\
  bool name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
zhanyong.wan's avatar
zhanyong.wan committed
567
568
      p5##_type, p6##_type, \
      p7##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
569
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
570
571
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
572

Abseil Team's avatar
Abseil Team committed
573
574
#define GMOCK_INTERNAL_MATCHER_P9(name, description, p0, p1, p2, p3, p4, p5, \
    p6, p7, p8)\
zhanyong.wan's avatar
zhanyong.wan committed
575
576
577
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type, typename p8##_type>\
Abseil Team's avatar
Abseil Team committed
578
579
580
581
  class name##MatcherP9 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP9<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, p6##_type, \
      p7##_type, p8##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
582
   public:\
Abseil Team's avatar
Abseil Team committed
583
    using name##MatcherP9::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
584
    template <typename arg_type>\
585
586
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
587
588
589
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
590
          p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8)\
Abseil Team's avatar
Abseil Team committed
591
592
593
594
595
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \
               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \
               p6(::std::move(gmock_p6)), p7(::std::move(gmock_p7)), \
               p8(::std::move(gmock_p8)) {}\
Robert Luberda's avatar
Robert Luberda committed
596
      bool MatchAndExplain(\
597
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
598
599
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
600
601
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
602
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
603
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
604
      }\
605
606
607
608
609
610
611
612
613
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
      p4##_type const p4;\
      p5##_type const p5;\
      p6##_type const p6;\
      p7##_type const p7;\
      p8##_type const p8;\
614
     private:\
615
616
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
617
        if (!gmock_description.empty()) {\
618
          return gmock_description;\
619
        }\
620
        return ::testing::internal::FormatMatcherDescription(\
621
            negation, #name, \
622
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
623
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
624
625
626
                    p4##_type, p5##_type, p6##_type, p7##_type, \
                    p8##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type, typename p8##_type>\
  inline name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \
      p4##_type, p5##_type, p6##_type, p7##_type, \
      p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
      p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \
      p8##_type p8) {\
    return name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \
        p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \
        p3, p4, p5, p6, p7, p8);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type, typename p8##_type>\
  template <typename arg_type>\
  bool name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \
zhanyong.wan's avatar
zhanyong.wan committed
646
647
      p5##_type, p6##_type, p7##_type, \
      p8##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
648
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
649
650
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
651

Abseil Team's avatar
Abseil Team committed
652
653
#define GMOCK_INTERNAL_MATCHER_P10(name, description, p0, p1, p2, p3, p4, p5, \
    p6, p7, p8, p9)\
zhanyong.wan's avatar
zhanyong.wan committed
654
655
656
657
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type, typename p8##_type, \
      typename p9##_type>\
Abseil Team's avatar
Abseil Team committed
658
659
660
661
  class name##MatcherP10 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP10<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, p6##_type, \
      p7##_type, p8##_type, p9##_type>> {\
zhanyong.wan's avatar
zhanyong.wan committed
662
   public:\
Abseil Team's avatar
Abseil Team committed
663
    using name##MatcherP10::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
664
    template <typename arg_type>\
665
666
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
667
668
669
670
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \
          p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \
671
          p9##_type gmock_p9)\
Abseil Team's avatar
Abseil Team committed
672
673
674
675
676
           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \
               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \
               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \
               p6(::std::move(gmock_p6)), p7(::std::move(gmock_p7)), \
               p8(::std::move(gmock_p8)), p9(::std::move(gmock_p9)) {}\
Robert Luberda's avatar
Robert Luberda committed
677
      bool MatchAndExplain(\
678
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
679
680
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
681
682
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
683
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
684
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
685
      }\
686
687
688
689
690
691
692
693
694
695
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
      p4##_type const p4;\
      p5##_type const p5;\
      p6##_type const p6;\
      p7##_type const p7;\
      p8##_type const p8;\
      p9##_type const p9;\
696
     private:\
697
698
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
699
        if (!gmock_description.empty()) {\
700
          return gmock_description;\
701
        }\
702
        return ::testing::internal::FormatMatcherDescription(\
703
            negation, #name, \
704
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
705
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
706
707
708
                    p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
                    p9##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
    };\
  };\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type, typename p8##_type, \
      typename p9##_type>\
  inline name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \
      p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
      p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \
      p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \
      p9##_type p9) {\
    return name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \
        p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \
        p1, p2, p3, p4, p5, p6, p7, p8, p9);\
  }\
  template <typename p0##_type, typename p1##_type, typename p2##_type, \
      typename p3##_type, typename p4##_type, typename p5##_type, \
      typename p6##_type, typename p7##_type, typename p8##_type, \
      typename p9##_type>\
  template <typename arg_type>\
  bool name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \
zhanyong.wan's avatar
zhanyong.wan committed
730
731
      p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
      p9##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
732
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
733
734
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
735

736
#endif  // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_