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

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

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

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

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

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

Abseil Team's avatar
Abseil Team committed
374
#define GMOCK_INTERNAL_MATCHER_P6(name, description, p0, p1, p2, p3, p4, p5)\
zhanyong.wan's avatar
zhanyong.wan committed
375
376
  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
377
378
379
380
381
  class name##MatcherP6 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP6<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type, p5##_type>> {\
    using __internal_base_type = \
        ::testing::internal::MatcherBaseImpl<name##MatcherP6>;\
zhanyong.wan's avatar
zhanyong.wan committed
382
   public:\
Abseil Team's avatar
Abseil Team committed
383
    using __internal_base_type::__internal_base_type;\
zhanyong.wan's avatar
zhanyong.wan committed
384
    template <typename arg_type>\
385
386
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
387
388
     public:\
      gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \
389
          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5)\
Abseil Team's avatar
Abseil Team committed
390
391
392
           : 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
393
      bool MatchAndExplain(\
394
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
395
396
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
397
398
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
399
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
400
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
401
      }\
402
403
404
405
406
407
      p0##_type const p0;\
      p1##_type const p1;\
      p2##_type const p2;\
      p3##_type const p3;\
      p4##_type const p4;\
      p5##_type const p5;\
408
     private:\
409
410
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
411
        if (!gmock_description.empty()) {\
412
          return gmock_description;\
413
        }\
414
        return ::testing::internal::FormatMatcherDescription(\
415
            negation, #name, \
416
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
417
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
418
419
                    p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
420
421
422
423
424
425
426
427
428
429
430
431
432
433
    };\
  };\
  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
434
      p5##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
435
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
436
437
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
438

Abseil Team's avatar
Abseil Team committed
439
440
#define GMOCK_INTERNAL_MATCHER_P7(name, description, p0, p1, p2, p3, p4, p5, \
    p6)\
zhanyong.wan's avatar
zhanyong.wan committed
441
442
443
  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
444
445
446
447
448
  class name##MatcherP7 : public \
      ::testing::internal::MatcherBaseImpl<name##MatcherP7<p0##_type, \
      p1##_type, p2##_type, p3##_type, p4##_type, p5##_type, p6##_type>> {\
    using __internal_base_type = \
        ::testing::internal::MatcherBaseImpl<name##MatcherP7>;\
zhanyong.wan's avatar
zhanyong.wan committed
449
   public:\
Abseil Team's avatar
Abseil Team committed
450
    using __internal_base_type::__internal_base_type;\
zhanyong.wan's avatar
zhanyong.wan committed
451
    template <typename arg_type>\
452
453
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
454
455
456
     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, \
457
          p6##_type gmock_p6)\
Abseil Team's avatar
Abseil Team committed
458
459
460
461
           : 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
462
      bool MatchAndExplain(\
463
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
464
465
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
466
467
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
468
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
469
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
470
      }\
471
472
473
474
475
476
477
      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;\
478
     private:\
479
480
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
481
        if (!gmock_description.empty()) {\
482
          return gmock_description;\
483
        }\
484
        return ::testing::internal::FormatMatcherDescription(\
485
            negation, #name, \
486
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
487
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
488
489
490
                    p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, \
                    p6)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
    };\
  };\
  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
508
      p5##_type, p6##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
509
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
510
511
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
512

Abseil Team's avatar
Abseil Team committed
513
514
#define GMOCK_INTERNAL_MATCHER_P8(name, description, p0, p1, p2, p3, p4, p5, \
    p6, p7)\
zhanyong.wan's avatar
zhanyong.wan committed
515
516
517
  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
518
519
520
521
522
523
  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>> {\
    using __internal_base_type = \
        ::testing::internal::MatcherBaseImpl<name##MatcherP8>;\
zhanyong.wan's avatar
zhanyong.wan committed
524
   public:\
Abseil Team's avatar
Abseil Team committed
525
    using __internal_base_type::__internal_base_type;\
zhanyong.wan's avatar
zhanyong.wan committed
526
    template <typename arg_type>\
527
528
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
529
530
531
     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, \
532
          p6##_type gmock_p6, p7##_type gmock_p7)\
Abseil Team's avatar
Abseil Team committed
533
534
535
536
           : 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
537
      bool MatchAndExplain(\
538
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
539
540
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
541
542
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
543
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
544
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
545
      }\
546
547
548
549
550
551
552
553
      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;\
554
     private:\
555
556
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
557
        if (!gmock_description.empty()) {\
558
          return gmock_description;\
559
        }\
560
        return ::testing::internal::FormatMatcherDescription(\
561
            negation, #name, \
562
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
563
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
564
565
566
                    p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, \
                    p3, p4, p5, p6, p7)));\
      }\
zhanyong.wan's avatar
zhanyong.wan committed
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
    };\
  };\
  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
585
586
      p5##_type, p6##_type, \
      p7##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
587
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
588
589
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
590

Abseil Team's avatar
Abseil Team committed
591
592
#define GMOCK_INTERNAL_MATCHER_P9(name, description, p0, p1, p2, p3, p4, p5, \
    p6, p7, p8)\
zhanyong.wan's avatar
zhanyong.wan committed
593
594
595
  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
596
597
598
599
600
601
  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>> {\
    using __internal_base_type = \
        ::testing::internal::MatcherBaseImpl<name##MatcherP9>;\
zhanyong.wan's avatar
zhanyong.wan committed
602
   public:\
Abseil Team's avatar
Abseil Team committed
603
    using __internal_base_type::__internal_base_type;\
zhanyong.wan's avatar
zhanyong.wan committed
604
    template <typename arg_type>\
605
606
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
607
608
609
     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, \
610
          p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8)\
Abseil Team's avatar
Abseil Team committed
611
612
613
614
615
           : 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
616
      bool MatchAndExplain(\
617
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
618
619
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
620
621
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
622
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
623
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
624
      }\
625
626
627
628
629
630
631
632
633
      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;\
634
     private:\
635
636
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
637
        if (!gmock_description.empty()) {\
638
          return gmock_description;\
639
        }\
640
        return ::testing::internal::FormatMatcherDescription(\
641
            negation, #name, \
642
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
643
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
644
645
646
                    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
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
    };\
  };\
  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
666
667
      p5##_type, p6##_type, p7##_type, \
      p8##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
668
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
669
670
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
671

Abseil Team's avatar
Abseil Team committed
672
673
#define GMOCK_INTERNAL_MATCHER_P10(name, description, p0, p1, p2, p3, p4, p5, \
    p6, p7, p8, p9)\
zhanyong.wan's avatar
zhanyong.wan committed
674
675
676
677
  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
678
679
680
681
682
683
  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>> {\
    using __internal_base_type = \
        ::testing::internal::MatcherBaseImpl<name##MatcherP10>;\
zhanyong.wan's avatar
zhanyong.wan committed
684
   public:\
Abseil Team's avatar
Abseil Team committed
685
    using __internal_base_type::__internal_base_type;\
zhanyong.wan's avatar
zhanyong.wan committed
686
    template <typename arg_type>\
687
688
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
689
690
691
692
     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, \
693
          p9##_type gmock_p9)\
Abseil Team's avatar
Abseil Team committed
694
695
696
697
698
           : 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
699
      bool MatchAndExplain(\
700
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
701
702
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
703
704
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
705
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
706
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
707
      }\
708
709
710
711
712
713
714
715
716
717
      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;\
718
     private:\
719
720
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
721
        if (!gmock_description.empty()) {\
722
          return gmock_description;\
723
        }\
724
        return ::testing::internal::FormatMatcherDescription(\
725
            negation, #name, \
726
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
727
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
728
729
730
                    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
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
    };\
  };\
  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
752
753
      p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
      p9##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
754
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
755
756
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
757

758
#endif  // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_