gmock-generated-matchers.h 33.7 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
    };\
  };\
durandal's avatar
durandal committed
83
  GTEST_ATTRIBUTE_UNUSED_ inline name##Matcher name() {\
zhanyong.wan's avatar
zhanyong.wan committed
84
85
86
    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::forward<p0##_type>(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
151
           : p0(::std::forward<p0##_type>(gmock_p0)), \
               p1(::std::forward<p1##_type>(gmock_p1)) {}\
Robert Luberda's avatar
Robert Luberda committed
152
      bool MatchAndExplain(\
153
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
154
155
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
156
157
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
158
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
159
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
160
      }\
161
162
      p0##_type const p0;\
      p1##_type const p1;\
163
     private:\
164
165
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
166
        if (!gmock_description.empty()) {\
167
          return gmock_description;\
168
        }\
169
        return ::testing::internal::FormatMatcherDescription(\
170
            negation, #name, \
171
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
172
                ::std::tuple<p0##_type, p1##_type>(p0, p1)));\
173
      }\
zhanyong.wan's avatar
zhanyong.wan committed
174
175
176
177
178
179
180
181
182
    };\
  };\
  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
183
184
  bool name##MatcherP2<p0##_type, \
      p1##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
185
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
186
187
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
188

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

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

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

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

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

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

Abseil Team's avatar
Abseil Team committed
589
590
#define GMOCK_INTERNAL_MATCHER_P9(name, description, p0, p1, p2, p3, p4, p5, \
    p6, p7, p8)\
zhanyong.wan's avatar
zhanyong.wan committed
591
592
593
  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
594
595
596
597
  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
598
   public:\
Abseil Team's avatar
Abseil Team committed
599
    using name##MatcherP9::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
600
    template <typename arg_type>\
601
602
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
603
604
605
     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, \
606
          p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8)\
Abseil Team's avatar
Abseil Team committed
607
608
609
610
611
612
613
614
615
           : p0(::std::forward<p0##_type>(gmock_p0)), \
               p1(::std::forward<p1##_type>(gmock_p1)), \
               p2(::std::forward<p2##_type>(gmock_p2)), \
               p3(::std::forward<p3##_type>(gmock_p3)), \
               p4(::std::forward<p4##_type>(gmock_p4)), \
               p5(::std::forward<p5##_type>(gmock_p5)), \
               p6(::std::forward<p6##_type>(gmock_p6)), \
               p7(::std::forward<p7##_type>(gmock_p7)), \
               p8(::std::forward<p8##_type>(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
  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
682
   public:\
Abseil Team's avatar
Abseil Team committed
683
    using name##MatcherP10::MatcherBaseImpl::MatcherBaseImpl;\
zhanyong.wan's avatar
zhanyong.wan committed
684
    template <typename arg_type>\
685
686
    class gmock_Impl : public ::testing::MatcherInterface<\
        GTEST_REFERENCE_TO_CONST_(arg_type)> {\
zhanyong.wan's avatar
zhanyong.wan committed
687
688
689
690
     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, \
691
          p9##_type gmock_p9)\
Abseil Team's avatar
Abseil Team committed
692
693
694
695
696
697
698
699
700
701
           : p0(::std::forward<p0##_type>(gmock_p0)), \
               p1(::std::forward<p1##_type>(gmock_p1)), \
               p2(::std::forward<p2##_type>(gmock_p2)), \
               p3(::std::forward<p3##_type>(gmock_p3)), \
               p4(::std::forward<p4##_type>(gmock_p4)), \
               p5(::std::forward<p5##_type>(gmock_p5)), \
               p6(::std::forward<p6##_type>(gmock_p6)), \
               p7(::std::forward<p7##_type>(gmock_p7)), \
               p8(::std::forward<p8##_type>(gmock_p8)), \
               p9(::std::forward<p9##_type>(gmock_p9)) {}\
Robert Luberda's avatar
Robert Luberda committed
702
      bool MatchAndExplain(\
703
          GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
Robert Luberda's avatar
Robert Luberda committed
704
705
          ::testing::MatchResultListener* result_listener) const override;\
      void DescribeTo(::std::ostream* gmock_os) const override {\
706
707
        *gmock_os << FormatDescription(false);\
      }\
Robert Luberda's avatar
Robert Luberda committed
708
      void DescribeNegationTo(::std::ostream* gmock_os) const override {\
709
        *gmock_os << FormatDescription(true);\
zhanyong.wan's avatar
zhanyong.wan committed
710
      }\
711
712
713
714
715
716
717
718
719
720
      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;\
721
     private:\
722
723
      ::std::string FormatDescription(bool negation) const {\
        ::std::string gmock_description = (description);\
724
        if (!gmock_description.empty()) {\
725
          return gmock_description;\
726
        }\
727
        return ::testing::internal::FormatMatcherDescription(\
728
            negation, #name, \
729
            ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\
Abseil Team's avatar
Abseil Team committed
730
                ::std::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \
731
732
733
                    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
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
    };\
  };\
  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
755
756
      p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \
      p9##_type>::gmock_Impl<arg_type>::MatchAndExplain(\
757
      GTEST_REFERENCE_TO_CONST_(arg_type) arg,\
zhanyong.wan's avatar
zhanyong.wan committed
758
759
      ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\
          const
zhanyong.wan's avatar
zhanyong.wan committed
760

761
#endif  // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_