38 #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_    39 #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_    50 #define GMOCK_FIELD_TYPE_(Tuple, i) \    51     typename ::std::tr1::tuple_element<i, Tuple>::type    64 template <
class Tuple, 
int k0 = -1, 
int k1 = -1, 
int k2 = -1, 
int k3 = -1,
    65     int k4 = -1, 
int k5 = -1, 
int k6 = -1, 
int k7 = -1, 
int k8 = -1,
    70 template <
class Tuple, 
int k0, 
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6,
    71     int k7, 
int k8, 
int k9>
    81     using ::std::tr1::get;
    82     return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
    83         get<k5>(t), get<k6>(t), get<k7>(t), get<k8>(t), get<k9>(t));
    89 template <
class Tuple>
    90 class TupleFields<Tuple, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> {
    92   typedef ::std::tr1::tuple<> 
type;
    94     using ::std::tr1::get;
    99 template <
class Tuple, 
int k0>
   100 class TupleFields<Tuple, k0, -1, -1, -1, -1, -1, -1, -1, -1, -1> {
   102   typedef ::std::tr1::tuple<GMOCK_FIELD_TYPE_(Tuple, k0)> 
type;
   104     using ::std::tr1::get;
   105     return type(get<k0>(t));
   109 template <
class Tuple, 
int k0, 
int k1>
   110 class TupleFields<Tuple, k0, k1, -1, -1, -1, -1, -1, -1, -1, -1> {
   115     using ::std::tr1::get;
   116     return type(get<k0>(t), get<k1>(t));
   120 template <
class Tuple, 
int k0, 
int k1, 
int k2>
   121 class TupleFields<Tuple, k0, k1, k2, -1, -1, -1, -1, -1, -1, -1> {
   126     using ::std::tr1::get;
   127     return type(get<k0>(t), get<k1>(t), get<k2>(t));
   131 template <
class Tuple, 
int k0, 
int k1, 
int k2, 
int k3>
   132 class TupleFields<Tuple, k0, k1, k2, k3, -1, -1, -1, -1, -1, -1> {
   138     using ::std::tr1::get;
   139     return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t));
   143 template <
class Tuple, 
int k0, 
int k1, 
int k2, 
int k3, 
int k4>
   144 class TupleFields<Tuple, k0, k1, k2, k3, k4, -1, -1, -1, -1, -1> {
   150     using ::std::tr1::get;
   151     return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t));
   155 template <
class Tuple, 
int k0, 
int k1, 
int k2, 
int k3, 
int k4, 
int k5>
   156 class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, -1, -1, -1, -1> {
   163     using ::std::tr1::get;
   164     return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
   169 template <
class Tuple, 
int k0, 
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6>
   170 class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, k6, -1, -1, -1> {
   177     using ::std::tr1::get;
   178     return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
   179         get<k5>(t), get<k6>(t));
   183 template <
class Tuple, 
int k0, 
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6,
   185 class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, k6, k7, -1, -1> {
   193     using ::std::tr1::get;
   194     return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
   195         get<k5>(t), get<k6>(t), get<k7>(t));
   199 template <
class Tuple, 
int k0, 
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6,
   201 class TupleFields<Tuple, k0, k1, k2, k3, k4, k5, k6, k7, k8, -1> {
   209     using ::std::tr1::get;
   210     return type(get<k0>(t), get<k1>(t), get<k2>(t), get<k3>(t), get<k4>(t),
   211         get<k5>(t), get<k6>(t), get<k7>(t), get<k8>(t));
   215 #undef GMOCK_FIELD_TYPE_   218 template <
class ArgsTuple, 
int k0 = -1, 
int k1 = -1, 
int k2 = -1, 
int k3 = -1,
   219     int k4 = -1, 
int k5 = -1, 
int k6 = -1, 
int k7 = -1, 
int k8 = -1,
   229   template <
typename InnerMatcher>
   231       : inner_matcher_(
SafeMatcherCast<const SelectedArgs&>(inner_matcher)) {}
   235     const SelectedArgs& selected_args = GetSelectedArgs(args);
   237       return inner_matcher_.Matches(selected_args);
   239     PrintIndices(listener->
stream());
   243     const bool match = inner_matcher_.MatchAndExplain(selected_args,
   250     *os << 
"are a tuple ";
   252     inner_matcher_.DescribeTo(os);
   256     *os << 
"are a tuple ";
   258     inner_matcher_.DescribeNegationTo(os);
   263     return TupleFields<RawArgsTuple, k0, k1, k2, k3, k4, k5, k6, k7, k8,
   269     *os << 
"whose fields (";
   270     const int indices[10] = { k0, k1, k2, k3, k4, k5, k6, k7, k8, k9 };
   271     for (
int i = 0; i < 10; i++) {
   278       *os << 
"#" << indices[i];
   288 template <
class InnerMatcher, 
int k0 = -1, 
int k1 = -1, 
int k2 = -1,
   289     int k3 = -1, 
int k4 = -1, 
int k5 = -1, 
int k6 = -1, 
int k7 = -1,
   290     int k8 = -1, 
int k9 = -1>
   294       : inner_matcher_(inner_matcher) {}
   296   template <
typename ArgsTuple>
   299         k6, k7, k8, k9>(inner_matcher_));
   310 template <
typename T1>
   315   template <
typename Container>
   328         MatcherCast<const Element&>(e1_);
   338 template <
typename T1, 
typename T2>
   343   template <
typename Container>
   350       MatcherCast<const Element&>(e1_),
   351       MatcherCast<const Element&>(e2_),
   364 template <
typename T1, 
typename T2, 
typename T3>
   370   template <
typename Container>
   377       MatcherCast<const Element&>(e1_),
   378       MatcherCast<const Element&>(e2_),
   379       MatcherCast<const Element&>(e3_),
   393 template <
typename T1, 
typename T2, 
typename T3, 
typename T4>
   397       const T4& e4) : e1_(e1), e2_(e2), e3_(e3), e4_(e4) {}
   399   template <
typename Container>
   406       MatcherCast<const Element&>(e1_),
   407       MatcherCast<const Element&>(e2_),
   408       MatcherCast<const Element&>(e3_),
   409       MatcherCast<const Element&>(e4_),
   424 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5>
   428       const T5& e5) : e1_(e1), e2_(e2), e3_(e3), e4_(e4), e5_(e5) {}
   430   template <
typename Container>
   437       MatcherCast<const Element&>(e1_),
   438       MatcherCast<const Element&>(e2_),
   439       MatcherCast<const Element&>(e3_),
   440       MatcherCast<const Element&>(e4_),
   441       MatcherCast<const Element&>(e5_),
   457 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   462       const T5& e5, 
const T6& e6) : e1_(e1), e2_(e2), e3_(e3), e4_(e4),
   465   template <
typename Container>
   472       MatcherCast<const Element&>(e1_),
   473       MatcherCast<const Element&>(e2_),
   474       MatcherCast<const Element&>(e3_),
   475       MatcherCast<const Element&>(e4_),
   476       MatcherCast<const Element&>(e5_),
   477       MatcherCast<const Element&>(e6_),
   494 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   495     typename T6, 
typename T7>
   499       const T5& e5, 
const T6& e6, 
const T7& e7) : e1_(e1), e2_(e2), e3_(e3),
   500       e4_(e4), e5_(e5), e6_(e6), e7_(e7) {}
   502   template <
typename Container>
   509       MatcherCast<const Element&>(e1_),
   510       MatcherCast<const Element&>(e2_),
   511       MatcherCast<const Element&>(e3_),
   512       MatcherCast<const Element&>(e4_),
   513       MatcherCast<const Element&>(e5_),
   514       MatcherCast<const Element&>(e6_),
   515       MatcherCast<const Element&>(e7_),
   533 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   534     typename T6, 
typename T7, 
typename T8>
   538       const T5& e5, 
const T6& e6, 
const T7& e7, 
const T8& e8) : e1_(e1),
   539       e2_(e2), e3_(e3), e4_(e4), e5_(e5), e6_(e6), e7_(e7), e8_(e8) {}
   541   template <
typename Container>
   548       MatcherCast<const Element&>(e1_),
   549       MatcherCast<const Element&>(e2_),
   550       MatcherCast<const Element&>(e3_),
   551       MatcherCast<const Element&>(e4_),
   552       MatcherCast<const Element&>(e5_),
   553       MatcherCast<const Element&>(e6_),
   554       MatcherCast<const Element&>(e7_),
   555       MatcherCast<const Element&>(e8_),
   574 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   575     typename T6, 
typename T7, 
typename T8, 
typename T9>
   579       const T5& e5, 
const T6& e6, 
const T7& e7, 
const T8& e8,
   580       const T9& e9) : e1_(e1), e2_(e2), e3_(e3), e4_(e4), e5_(e5), e6_(e6),
   581       e7_(e7), e8_(e8), e9_(e9) {}
   583   template <
typename Container>
   590       MatcherCast<const Element&>(e1_),
   591       MatcherCast<const Element&>(e2_),
   592       MatcherCast<const Element&>(e3_),
   593       MatcherCast<const Element&>(e4_),
   594       MatcherCast<const Element&>(e5_),
   595       MatcherCast<const Element&>(e6_),
   596       MatcherCast<const Element&>(e7_),
   597       MatcherCast<const Element&>(e8_),
   598       MatcherCast<const Element&>(e9_),
   618 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   619     typename T6, 
typename T7, 
typename T8, 
typename T9, 
typename T10>
   623       const T5& e5, 
const T6& e6, 
const T7& e7, 
const T8& e8, 
const T9& e9,
   624       const T10& e10) : e1_(e1), e2_(e2), e3_(e3), e4_(e4), e5_(e5), e6_(e6),
   625       e7_(e7), e8_(e8), e9_(e9), e10_(e10) {}
   627   template <
typename Container>
   634       MatcherCast<const Element&>(e1_),
   635       MatcherCast<const Element&>(e2_),
   636       MatcherCast<const Element&>(e3_),
   637       MatcherCast<const Element&>(e4_),
   638       MatcherCast<const Element&>(e5_),
   639       MatcherCast<const Element&>(e6_),
   640       MatcherCast<const Element&>(e7_),
   641       MatcherCast<const Element&>(e8_),
   642       MatcherCast<const Element&>(e9_),
   643       MatcherCast<const Element&>(e10_),
   669 template <
typename InnerMatcher>
   671 Args(
const InnerMatcher& matcher) {
   675 template <
int k1, 
typename InnerMatcher>
   677 Args(
const InnerMatcher& matcher) {
   681 template <
int k1, 
int k2, 
typename InnerMatcher>
   683 Args(
const InnerMatcher& matcher) {
   687 template <
int k1, 
int k2, 
int k3, 
typename InnerMatcher>
   689 Args(
const InnerMatcher& matcher) {
   693 template <
int k1, 
int k2, 
int k3, 
int k4, 
typename InnerMatcher>
   695 Args(
const InnerMatcher& matcher) {
   699 template <
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
typename InnerMatcher>
   701 Args(
const InnerMatcher& matcher) {
   705 template <
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6, 
typename InnerMatcher>
   707 Args(
const InnerMatcher& matcher) {
   711 template <
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6, 
int k7,
   712     typename InnerMatcher>
   714 Args(
const InnerMatcher& matcher) {
   719 template <
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6, 
int k7, 
int k8,
   720     typename InnerMatcher>
   722 Args(
const InnerMatcher& matcher) {
   727 template <
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6, 
int k7, 
int k8,
   728     int k9, 
typename InnerMatcher>
   730 Args(
const InnerMatcher& matcher) {
   735 template <
int k1, 
int k2, 
int k3, 
int k4, 
int k5, 
int k6, 
int k7, 
int k8,
   736     int k9, 
int k10, 
typename InnerMatcher>
   737 inline internal::ArgsMatcher<InnerMatcher, k1, k2, k3, k4, k5, k6, k7, k8, k9,
   739 Args(
const InnerMatcher& matcher) {
   758 template <
typename T1>
   763 template <
typename T1, 
typename T2>
   769 template <
typename T1, 
typename T2, 
typename T3>
   771     const T2& e2, 
const T3& e3) {
   775 template <
typename T1, 
typename T2, 
typename T3, 
typename T4>
   777     const T2& e2, 
const T3& e3, 
const T4& e4) {
   781 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5>
   783     T5> 
ElementsAre(
const T1& e1, 
const T2& e2, 
const T3& e3, 
const T4& e4,
   788 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   791     T6> 
ElementsAre(
const T1& e1, 
const T2& e2, 
const T3& e3, 
const T4& e4,
   792     const T5& e5, 
const T6& e6) {
   797 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   798     typename T6, 
typename T7>
   800     T7> 
ElementsAre(
const T1& e1, 
const T2& e2, 
const T3& e3, 
const T4& e4,
   801     const T5& e5, 
const T6& e6, 
const T7& e7) {
   806 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   807     typename T6, 
typename T7, 
typename T8>
   809     T8> 
ElementsAre(
const T1& e1, 
const T2& e2, 
const T3& e3, 
const T4& e4,
   810     const T5& e5, 
const T6& e6, 
const T7& e7, 
const T8& e8) {
   812       e3, e4, e5, e6, e7, e8);
   815 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   816     typename T6, 
typename T7, 
typename T8, 
typename T9>
   818     T9> 
ElementsAre(
const T1& e1, 
const T2& e2, 
const T3& e3, 
const T4& e4,
   819     const T5& e5, 
const T6& e6, 
const T7& e7, 
const T8& e8, 
const T9& e9) {
   821       e2, e3, e4, e5, e6, e7, e8, e9);
   824 template <
typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
   825     typename T6, 
typename T7, 
typename T8, 
typename T9, 
typename T10>
   827     T10> 
ElementsAre(
const T1& e1, 
const T2& e2, 
const T3& e3, 
const T4& e4,
   828     const T5& e5, 
const T6& e6, 
const T7& e7, 
const T8& e8, 
const T9& e9,
   831       T10>(e1, e2, e3, e4, e5, e6, e7, e8, e9, e10);
   840 template <
typename T>
   842     const T* first, 
size_t count) {
   846 template <
typename T, 
size_t N>
   855 template <
typename Matcher1, 
typename Matcher2>
   861 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3>
   864 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3) {
   868 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   872 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4) {
   876 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   877     typename Matcher4, 
typename Matcher5>
   881 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5) {
   885 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   886     typename Matcher4, 
typename Matcher5, 
typename Matcher6>
   890 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
   895 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   896     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7>
   901 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
   902     Matcher6 m6, Matcher7 m7) {
   906 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   907     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7,
   913 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
   914     Matcher6 m6, Matcher7 m7, Matcher8 m8) {
   918 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   919     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7,
   920     typename Matcher8, 
typename Matcher9>
   925     Matcher9> > > > > > > >
   926 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
   927     Matcher6 m6, Matcher7 m7, Matcher8 m8, Matcher9 m9) {
   931 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   932     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7,
   933     typename Matcher8, 
typename Matcher9, 
typename Matcher10>
   939 AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
   940     Matcher6 m6, Matcher7 m7, Matcher8 m8, Matcher9 m9, Matcher10 m10) {
   948 template <
typename Matcher1, 
typename Matcher2>
   954 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3>
   957 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3) {
   961 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   965 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4) {
   969 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   970     typename Matcher4, 
typename Matcher5>
   974 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5) {
   978 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   979     typename Matcher4, 
typename Matcher5, 
typename Matcher6>
   983 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
   988 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
   989     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7>
   994 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
   995     Matcher6 m6, Matcher7 m7) {
   999 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
  1000     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7,
  1006 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
  1007     Matcher6 m6, Matcher7 m7, Matcher8 m8) {
  1011 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
  1012     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7,
  1013     typename Matcher8, 
typename Matcher9>
  1018     Matcher9> > > > > > > >
  1019 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
  1020     Matcher6 m6, Matcher7 m7, Matcher8 m8, Matcher9 m9) {
  1024 template <
typename Matcher1, 
typename Matcher2, 
typename Matcher3,
  1025     typename Matcher4, 
typename Matcher5, 
typename Matcher6, 
typename Matcher7,
  1026     typename Matcher8, 
typename Matcher9, 
typename Matcher10>
  1032 AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5,
  1033     Matcher6 m6, Matcher7 m7, Matcher8 m8, Matcher9 m9, Matcher10 m10) {
  1256 #define MATCHER(name, description)\  1257   class name##Matcher {\  1259     template <typename arg_type>\  1260     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1264       virtual bool MatchAndExplain(\  1265           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1266       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1267         *gmock_os << FormatDescription(false);\  1269       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1270         *gmock_os << FormatDescription(true);\  1273       ::testing::internal::string FormatDescription(bool negation) const {\  1274         const ::testing::internal::string gmock_description = (description);\  1275         if (!gmock_description.empty())\  1276           return gmock_description;\  1277         return ::testing::internal::FormatMatcherDescription(\  1279             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1280                 ::std::tr1::tuple<>()));\  1282       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1284     template <typename arg_type>\  1285     operator ::testing::Matcher<arg_type>() const {\  1286       return ::testing::Matcher<arg_type>(\  1287           new gmock_Impl<arg_type>());\  1292     GTEST_DISALLOW_ASSIGN_(name##Matcher);\  1294   inline name##Matcher name() {\  1295     return name##Matcher();\  1297   template <typename arg_type>\  1298   bool name##Matcher::gmock_Impl<arg_type>::MatchAndExplain(\  1300       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1303 #define MATCHER_P(name, p0, description)\  1304   template <typename p0##_type>\  1305   class name##MatcherP {\  1307     template <typename arg_type>\  1308     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1310       explicit gmock_Impl(p0##_type gmock_p0)\  1312       virtual bool MatchAndExplain(\  1313           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1314       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1315         *gmock_os << FormatDescription(false);\  1317       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1318         *gmock_os << FormatDescription(true);\  1322       ::testing::internal::string FormatDescription(bool negation) const {\  1323         const ::testing::internal::string gmock_description = (description);\  1324         if (!gmock_description.empty())\  1325           return gmock_description;\  1326         return ::testing::internal::FormatMatcherDescription(\  1328             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1329                 ::std::tr1::tuple<p0##_type>(p0)));\  1331       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1333     template <typename arg_type>\  1334     operator ::testing::Matcher<arg_type>() const {\  1335       return ::testing::Matcher<arg_type>(\  1336           new gmock_Impl<arg_type>(p0));\  1338     name##MatcherP(p0##_type gmock_p0) : p0(gmock_p0) {\  1342     GTEST_DISALLOW_ASSIGN_(name##MatcherP);\  1344   template <typename p0##_type>\  1345   inline name##MatcherP<p0##_type> name(p0##_type p0) {\  1346     return name##MatcherP<p0##_type>(p0);\  1348   template <typename p0##_type>\  1349   template <typename arg_type>\  1350   bool name##MatcherP<p0##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1352       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1355 #define MATCHER_P2(name, p0, p1, description)\  1356   template <typename p0##_type, typename p1##_type>\  1357   class name##MatcherP2 {\  1359     template <typename arg_type>\  1360     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1362       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1)\  1363            : p0(gmock_p0), p1(gmock_p1) {}\  1364       virtual bool MatchAndExplain(\  1365           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1366       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1367         *gmock_os << FormatDescription(false);\  1369       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1370         *gmock_os << FormatDescription(true);\  1375       ::testing::internal::string FormatDescription(bool negation) const {\  1376         const ::testing::internal::string gmock_description = (description);\  1377         if (!gmock_description.empty())\  1378           return gmock_description;\  1379         return ::testing::internal::FormatMatcherDescription(\  1381             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1382                 ::std::tr1::tuple<p0##_type, p1##_type>(p0, p1)));\  1384       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1386     template <typename arg_type>\  1387     operator ::testing::Matcher<arg_type>() const {\  1388       return ::testing::Matcher<arg_type>(\  1389           new gmock_Impl<arg_type>(p0, p1));\  1391     name##MatcherP2(p0##_type gmock_p0, p1##_type gmock_p1) : p0(gmock_p0), \  1397     GTEST_DISALLOW_ASSIGN_(name##MatcherP2);\  1399   template <typename p0##_type, typename p1##_type>\  1400   inline name##MatcherP2<p0##_type, p1##_type> name(p0##_type p0, \  1402     return name##MatcherP2<p0##_type, p1##_type>(p0, p1);\  1404   template <typename p0##_type, typename p1##_type>\  1405   template <typename arg_type>\  1406   bool name##MatcherP2<p0##_type, \  1407       p1##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1409       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1412 #define MATCHER_P3(name, p0, p1, p2, description)\  1413   template <typename p0##_type, typename p1##_type, typename p2##_type>\  1414   class name##MatcherP3 {\  1416     template <typename arg_type>\  1417     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1419       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2)\  1420            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {}\  1421       virtual bool MatchAndExplain(\  1422           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1423       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1424         *gmock_os << FormatDescription(false);\  1426       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1427         *gmock_os << FormatDescription(true);\  1433       ::testing::internal::string FormatDescription(bool negation) const {\  1434         const ::testing::internal::string gmock_description = (description);\  1435         if (!gmock_description.empty())\  1436           return gmock_description;\  1437         return ::testing::internal::FormatMatcherDescription(\  1439             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1440                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type>(p0, p1, \  1443       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1445     template <typename arg_type>\  1446     operator ::testing::Matcher<arg_type>() const {\  1447       return ::testing::Matcher<arg_type>(\  1448           new gmock_Impl<arg_type>(p0, p1, p2));\  1450     name##MatcherP3(p0##_type gmock_p0, p1##_type gmock_p1, \  1451         p2##_type gmock_p2) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2) {\  1457     GTEST_DISALLOW_ASSIGN_(name##MatcherP3);\  1459   template <typename p0##_type, typename p1##_type, typename p2##_type>\  1460   inline name##MatcherP3<p0##_type, p1##_type, p2##_type> name(p0##_type p0, \  1461       p1##_type p1, p2##_type p2) {\  1462     return name##MatcherP3<p0##_type, p1##_type, p2##_type>(p0, p1, p2);\  1464   template <typename p0##_type, typename p1##_type, typename p2##_type>\  1465   template <typename arg_type>\  1466   bool name##MatcherP3<p0##_type, p1##_type, \  1467       p2##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1469       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1472 #define MATCHER_P4(name, p0, p1, p2, p3, description)\  1473   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1474       typename p3##_type>\  1475   class name##MatcherP4 {\  1477     template <typename arg_type>\  1478     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1480       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \  1481           p3##_type gmock_p3)\  1482            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3) {}\  1483       virtual bool MatchAndExplain(\  1484           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1485       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1486         *gmock_os << FormatDescription(false);\  1488       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1489         *gmock_os << FormatDescription(true);\  1496       ::testing::internal::string FormatDescription(bool negation) const {\  1497         const ::testing::internal::string gmock_description = (description);\  1498         if (!gmock_description.empty())\  1499           return gmock_description;\  1500         return ::testing::internal::FormatMatcherDescription(\  1502             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1503                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, \  1504                     p3##_type>(p0, p1, p2, p3)));\  1506       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1508     template <typename arg_type>\  1509     operator ::testing::Matcher<arg_type>() const {\  1510       return ::testing::Matcher<arg_type>(\  1511           new gmock_Impl<arg_type>(p0, p1, p2, p3));\  1513     name##MatcherP4(p0##_type gmock_p0, p1##_type gmock_p1, \  1514         p2##_type gmock_p2, p3##_type gmock_p3) : p0(gmock_p0), p1(gmock_p1), \  1515         p2(gmock_p2), p3(gmock_p3) {\  1522     GTEST_DISALLOW_ASSIGN_(name##MatcherP4);\  1524   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1525       typename p3##_type>\  1526   inline name##MatcherP4<p0##_type, p1##_type, p2##_type, \  1527       p3##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \  1529     return name##MatcherP4<p0##_type, p1##_type, p2##_type, p3##_type>(p0, \  1532   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1533       typename p3##_type>\  1534   template <typename arg_type>\  1535   bool name##MatcherP4<p0##_type, p1##_type, p2##_type, \  1536       p3##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1538       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1541 #define MATCHER_P5(name, p0, p1, p2, p3, p4, description)\  1542   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1543       typename p3##_type, typename p4##_type>\  1544   class name##MatcherP5 {\  1546     template <typename arg_type>\  1547     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1549       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \  1550           p3##_type gmock_p3, p4##_type gmock_p4)\  1551            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \  1553       virtual bool MatchAndExplain(\  1554           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1555       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1556         *gmock_os << FormatDescription(false);\  1558       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1559         *gmock_os << FormatDescription(true);\  1567       ::testing::internal::string FormatDescription(bool negation) const {\  1568         const ::testing::internal::string gmock_description = (description);\  1569         if (!gmock_description.empty())\  1570           return gmock_description;\  1571         return ::testing::internal::FormatMatcherDescription(\  1573             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1574                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \  1575                     p4##_type>(p0, p1, p2, p3, p4)));\  1577       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1579     template <typename arg_type>\  1580     operator ::testing::Matcher<arg_type>() const {\  1581       return ::testing::Matcher<arg_type>(\  1582           new gmock_Impl<arg_type>(p0, p1, p2, p3, p4));\  1584     name##MatcherP5(p0##_type gmock_p0, p1##_type gmock_p1, \  1585         p2##_type gmock_p2, p3##_type gmock_p3, \  1586         p4##_type gmock_p4) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \  1587         p3(gmock_p3), p4(gmock_p4) {\  1595     GTEST_DISALLOW_ASSIGN_(name##MatcherP5);\  1597   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1598       typename p3##_type, typename p4##_type>\  1599   inline name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \  1600       p4##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \  1602     return name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \  1603         p4##_type>(p0, p1, p2, p3, p4);\  1605   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1606       typename p3##_type, typename p4##_type>\  1607   template <typename arg_type>\  1608   bool name##MatcherP5<p0##_type, p1##_type, p2##_type, p3##_type, \  1609       p4##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1611       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1614 #define MATCHER_P6(name, p0, p1, p2, p3, p4, p5, description)\  1615   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1616       typename p3##_type, typename p4##_type, typename p5##_type>\  1617   class name##MatcherP6 {\  1619     template <typename arg_type>\  1620     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1622       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \  1623           p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5)\  1624            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \  1625                p4(gmock_p4), p5(gmock_p5) {}\  1626       virtual bool MatchAndExplain(\  1627           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1628       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1629         *gmock_os << FormatDescription(false);\  1631       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1632         *gmock_os << FormatDescription(true);\  1641       ::testing::internal::string FormatDescription(bool negation) const {\  1642         const ::testing::internal::string gmock_description = (description);\  1643         if (!gmock_description.empty())\  1644           return gmock_description;\  1645         return ::testing::internal::FormatMatcherDescription(\  1647             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1648                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \  1649                     p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5)));\  1651       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1653     template <typename arg_type>\  1654     operator ::testing::Matcher<arg_type>() const {\  1655       return ::testing::Matcher<arg_type>(\  1656           new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5));\  1658     name##MatcherP6(p0##_type gmock_p0, p1##_type gmock_p1, \  1659         p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \  1660         p5##_type gmock_p5) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \  1661         p3(gmock_p3), p4(gmock_p4), p5(gmock_p5) {\  1670     GTEST_DISALLOW_ASSIGN_(name##MatcherP6);\  1672   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1673       typename p3##_type, typename p4##_type, typename p5##_type>\  1674   inline name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \  1675       p4##_type, p5##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, \  1676       p3##_type p3, p4##_type p4, p5##_type p5) {\  1677     return name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, \  1678         p4##_type, p5##_type>(p0, p1, p2, p3, p4, p5);\  1680   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1681       typename p3##_type, typename p4##_type, typename p5##_type>\  1682   template <typename arg_type>\  1683   bool name##MatcherP6<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \  1684       p5##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1686       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1689 #define MATCHER_P7(name, p0, p1, p2, p3, p4, p5, p6, description)\  1690   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1691       typename p3##_type, typename p4##_type, typename p5##_type, \  1692       typename p6##_type>\  1693   class name##MatcherP7 {\  1695     template <typename arg_type>\  1696     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1698       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \  1699           p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \  1700           p6##_type gmock_p6)\  1701            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \  1702                p4(gmock_p4), p5(gmock_p5), p6(gmock_p6) {}\  1703       virtual bool MatchAndExplain(\  1704           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1705       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1706         *gmock_os << FormatDescription(false);\  1708       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1709         *gmock_os << FormatDescription(true);\  1719       ::testing::internal::string FormatDescription(bool negation) const {\  1720         const ::testing::internal::string gmock_description = (description);\  1721         if (!gmock_description.empty())\  1722           return gmock_description;\  1723         return ::testing::internal::FormatMatcherDescription(\  1725             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1726                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \  1727                     p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, \  1730       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1732     template <typename arg_type>\  1733     operator ::testing::Matcher<arg_type>() const {\  1734       return ::testing::Matcher<arg_type>(\  1735           new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6));\  1737     name##MatcherP7(p0##_type gmock_p0, p1##_type gmock_p1, \  1738         p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \  1739         p5##_type gmock_p5, p6##_type gmock_p6) : p0(gmock_p0), p1(gmock_p1), \  1740         p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), \  1751     GTEST_DISALLOW_ASSIGN_(name##MatcherP7);\  1753   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1754       typename p3##_type, typename p4##_type, typename p5##_type, \  1755       typename p6##_type>\  1756   inline name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \  1757       p4##_type, p5##_type, p6##_type> name(p0##_type p0, p1##_type p1, \  1758       p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \  1760     return name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, \  1761         p4##_type, p5##_type, p6##_type>(p0, p1, p2, p3, p4, p5, p6);\  1763   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1764       typename p3##_type, typename p4##_type, typename p5##_type, \  1765       typename p6##_type>\  1766   template <typename arg_type>\  1767   bool name##MatcherP7<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \  1768       p5##_type, p6##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1770       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1773 #define MATCHER_P8(name, p0, p1, p2, p3, p4, p5, p6, p7, description)\  1774   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1775       typename p3##_type, typename p4##_type, typename p5##_type, \  1776       typename p6##_type, typename p7##_type>\  1777   class name##MatcherP8 {\  1779     template <typename arg_type>\  1780     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1782       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \  1783           p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \  1784           p6##_type gmock_p6, p7##_type gmock_p7)\  1785            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \  1786                p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7) {}\  1787       virtual bool MatchAndExplain(\  1788           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1789       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1790         *gmock_os << FormatDescription(false);\  1792       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1793         *gmock_os << FormatDescription(true);\  1804       ::testing::internal::string FormatDescription(bool negation) const {\  1805         const ::testing::internal::string gmock_description = (description);\  1806         if (!gmock_description.empty())\  1807           return gmock_description;\  1808         return ::testing::internal::FormatMatcherDescription(\  1810             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1811                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \  1812                     p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, \  1813                     p3, p4, p5, p6, p7)));\  1815       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1817     template <typename arg_type>\  1818     operator ::testing::Matcher<arg_type>() const {\  1819       return ::testing::Matcher<arg_type>(\  1820           new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7));\  1822     name##MatcherP8(p0##_type gmock_p0, p1##_type gmock_p1, \  1823         p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \  1824         p5##_type gmock_p5, p6##_type gmock_p6, \  1825         p7##_type gmock_p7) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \  1826         p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \  1838     GTEST_DISALLOW_ASSIGN_(name##MatcherP8);\  1840   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1841       typename p3##_type, typename p4##_type, typename p5##_type, \  1842       typename p6##_type, typename p7##_type>\  1843   inline name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \  1844       p4##_type, p5##_type, p6##_type, p7##_type> name(p0##_type p0, \  1845       p1##_type p1, p2##_type p2, p3##_type p3, p4##_type p4, p5##_type p5, \  1846       p6##_type p6, p7##_type p7) {\  1847     return name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, \  1848         p4##_type, p5##_type, p6##_type, p7##_type>(p0, p1, p2, p3, p4, p5, \  1851   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1852       typename p3##_type, typename p4##_type, typename p5##_type, \  1853       typename p6##_type, typename p7##_type>\  1854   template <typename arg_type>\  1855   bool name##MatcherP8<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \  1856       p5##_type, p6##_type, \  1857       p7##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1859       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1862 #define MATCHER_P9(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, description)\  1863   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1864       typename p3##_type, typename p4##_type, typename p5##_type, \  1865       typename p6##_type, typename p7##_type, typename p8##_type>\  1866   class name##MatcherP9 {\  1868     template <typename arg_type>\  1869     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1871       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \  1872           p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \  1873           p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8)\  1874            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \  1875                p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \  1877       virtual bool MatchAndExplain(\  1878           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1879       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1880         *gmock_os << FormatDescription(false);\  1882       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1883         *gmock_os << FormatDescription(true);\  1895       ::testing::internal::string FormatDescription(bool negation) const {\  1896         const ::testing::internal::string gmock_description = (description);\  1897         if (!gmock_description.empty())\  1898           return gmock_description;\  1899         return ::testing::internal::FormatMatcherDescription(\  1901             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1902                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \  1903                     p4##_type, p5##_type, p6##_type, p7##_type, \  1904                     p8##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8)));\  1906       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  1908     template <typename arg_type>\  1909     operator ::testing::Matcher<arg_type>() const {\  1910       return ::testing::Matcher<arg_type>(\  1911           new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8));\  1913     name##MatcherP9(p0##_type gmock_p0, p1##_type gmock_p1, \  1914         p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \  1915         p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \  1916         p8##_type gmock_p8) : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), \  1917         p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \  1930     GTEST_DISALLOW_ASSIGN_(name##MatcherP9);\  1932   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1933       typename p3##_type, typename p4##_type, typename p5##_type, \  1934       typename p6##_type, typename p7##_type, typename p8##_type>\  1935   inline name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \  1936       p4##_type, p5##_type, p6##_type, p7##_type, \  1937       p8##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \  1938       p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, \  1940     return name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, \  1941         p4##_type, p5##_type, p6##_type, p7##_type, p8##_type>(p0, p1, p2, \  1942         p3, p4, p5, p6, p7, p8);\  1944   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1945       typename p3##_type, typename p4##_type, typename p5##_type, \  1946       typename p6##_type, typename p7##_type, typename p8##_type>\  1947   template <typename arg_type>\  1948   bool name##MatcherP9<p0##_type, p1##_type, p2##_type, p3##_type, p4##_type, \  1949       p5##_type, p6##_type, p7##_type, \  1950       p8##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  1952       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  1955 #define MATCHER_P10(name, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, description)\  1956   template <typename p0##_type, typename p1##_type, typename p2##_type, \  1957       typename p3##_type, typename p4##_type, typename p5##_type, \  1958       typename p6##_type, typename p7##_type, typename p8##_type, \  1959       typename p9##_type>\  1960   class name##MatcherP10 {\  1962     template <typename arg_type>\  1963     class gmock_Impl : public ::testing::MatcherInterface<arg_type> {\  1965       gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \  1966           p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \  1967           p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \  1968           p9##_type gmock_p9)\  1969            : p0(gmock_p0), p1(gmock_p1), p2(gmock_p2), p3(gmock_p3), \  1970                p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), p7(gmock_p7), \  1971                p8(gmock_p8), p9(gmock_p9) {}\  1972       virtual bool MatchAndExplain(\  1973           arg_type arg, ::testing::MatchResultListener* result_listener) const;\  1974       virtual void DescribeTo(::std::ostream* gmock_os) const {\  1975         *gmock_os << FormatDescription(false);\  1977       virtual void DescribeNegationTo(::std::ostream* gmock_os) const {\  1978         *gmock_os << FormatDescription(true);\  1991       ::testing::internal::string FormatDescription(bool negation) const {\  1992         const ::testing::internal::string gmock_description = (description);\  1993         if (!gmock_description.empty())\  1994           return gmock_description;\  1995         return ::testing::internal::FormatMatcherDescription(\  1997             ::testing::internal::UniversalTersePrintTupleFieldsToStrings(\  1998                 ::std::tr1::tuple<p0##_type, p1##_type, p2##_type, p3##_type, \  1999                     p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \  2000                     p9##_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)));\  2002       GTEST_DISALLOW_ASSIGN_(gmock_Impl);\  2004     template <typename arg_type>\  2005     operator ::testing::Matcher<arg_type>() const {\  2006       return ::testing::Matcher<arg_type>(\  2007           new gmock_Impl<arg_type>(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9));\  2009     name##MatcherP10(p0##_type gmock_p0, p1##_type gmock_p1, \  2010         p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \  2011         p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \  2012         p8##_type gmock_p8, p9##_type gmock_p9) : p0(gmock_p0), p1(gmock_p1), \  2013         p2(gmock_p2), p3(gmock_p3), p4(gmock_p4), p5(gmock_p5), p6(gmock_p6), \  2014         p7(gmock_p7), p8(gmock_p8), p9(gmock_p9) {\  2027     GTEST_DISALLOW_ASSIGN_(name##MatcherP10);\  2029   template <typename p0##_type, typename p1##_type, typename p2##_type, \  2030       typename p3##_type, typename p4##_type, typename p5##_type, \  2031       typename p6##_type, typename p7##_type, typename p8##_type, \  2032       typename p9##_type>\  2033   inline name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \  2034       p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \  2035       p9##_type> name(p0##_type p0, p1##_type p1, p2##_type p2, p3##_type p3, \  2036       p4##_type p4, p5##_type p5, p6##_type p6, p7##_type p7, p8##_type p8, \  2038     return name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \  2039         p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, p9##_type>(p0, \  2040         p1, p2, p3, p4, p5, p6, p7, p8, p9);\  2042   template <typename p0##_type, typename p1##_type, typename p2##_type, \  2043       typename p3##_type, typename p4##_type, typename p5##_type, \  2044       typename p6##_type, typename p7##_type, typename p8##_type, \  2045       typename p9##_type>\  2046   template <typename arg_type>\  2047   bool name##MatcherP10<p0##_type, p1##_type, p2##_type, p3##_type, \  2048       p4##_type, p5##_type, p6##_type, p7##_type, p8##_type, \  2049       p9##_type>::gmock_Impl<arg_type>::MatchAndExplain(\  2051       ::testing::MatchResultListener* result_listener GTEST_ATTRIBUTE_UNUSED_)\  2054 #endif  // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_MATCHERS_H_ const T3 & e3_
Definition: gmock-generated-matchers.h:486
 
ArgsMatcherImpl(const InnerMatcher &inner_matcher)
Definition: gmock-generated-matchers.h:230
 
const T2 & e2_
Definition: gmock-generated-matchers.h:563
 
testing::internal::TupleFields< Tuple, k0,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:103
 
Definition: gmock-generated-matchers.h:535
 
ElementsAreMatcher1(const T1 &e1)
Definition: gmock-generated-matchers.h:313
 
ElementsAreMatcher4(const T1 &e1, const T2 &e2, const T3 &e3, const T4 &e4)
Definition: gmock-generated-matchers.h:396
 
::std::ostream * stream()
Definition: gmock-matchers.h:91
 
Definition: gmock-actions.h:49
 
const T4 & e4_
Definition: gmock-generated-matchers.h:487
 
Matcher< T > SafeMatcherCast(const M &polymorphic_matcher)
Definition: gmock-matchers.h:445
 
Definition: gmock-matchers.h:110
 
bool IsInterested() const 
Definition: gmock-matchers.h:97
 
testing::internal::TupleFields< Tuple, k0,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0)> type
Definition: gmock-generated-matchers.h:102
 
::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6), GMOCK_FIELD_TYPE_(Tuple, k7), GMOCK_FIELD_TYPE_(Tuple, k8), GMOCK_FIELD_TYPE_(Tuple, k9)> type
Definition: gmock-generated-matchers.h:79
 
const T8 & e8_
Definition: gmock-generated-matchers.h:569
 
const T8 & e8_
Definition: gmock-generated-matchers.h:612
 
const T2 & e2_
Definition: gmock-generated-matchers.h:523
 
Definition: gmock-generated-matchers.h:425
 
const InnerMatcher inner_matcher_
Definition: gmock-generated-matchers.h:303
 
const T6 & e6_
Definition: gmock-generated-matchers.h:489
 
testing::internal::TupleFields< Tuple, k0, k1, k2,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2)> type
Definition: gmock-generated-matchers.h:124
 
Definition: gmock-matchers.h:2393
 
::std::string PrintToString(const T &value)
Definition: gtest-printers.h:788
 
Definition: gmock-matchers.h:2525
 
const T1 & e1_
Definition: gmock-generated-matchers.h:484
 
Definition: gmock-matchers.h:1272
 
Definition: gmock-generated-matchers.h:339
 
const T1 & e1_
Definition: gmock-generated-matchers.h:333
 
Definition: gmock-internal-utils.h:377
 
Matcher< const SelectedArgs & > MonomorphicInnerMatcher
Definition: gmock-generated-matchers.h:227
 
const MonomorphicInnerMatcher inner_matcher_
Definition: gmock-generated-matchers.h:283
 
const T5 & e5_
Definition: gmock-generated-matchers.h:488
 
const T1 & e1_
Definition: gmock-generated-matchers.h:386
 
Definition: InputPrereqs.h:107
 
const T1 & e1_
Definition: gmock-generated-matchers.h:358
 
Definition: gmock-generated-matchers.h:576
 
ElementsAreMatcher5(const T1 &e1, const T2 &e2, const T3 &e3, const T4 &e4, const T5 &e5)
Definition: gmock-generated-matchers.h:427
 
const T8 & e8_
Definition: gmock-generated-matchers.h:657
 
virtual void DescribeTo(::std::ostream *os) const 
Definition: gmock-generated-matchers.h:249
 
const T5 & e5_
Definition: gmock-generated-matchers.h:609
 
testing::internal::TupleFields< Tuple, k0, k1,-1,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:114
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:176
 
Definition: gtest-tuple.h:109
 
const T7 & e7_
Definition: gmock-generated-matchers.h:656
 
const T5 & e5_
Definition: gmock-generated-matchers.h:566
 
const T4 & e4_
Definition: gmock-generated-matchers.h:419
 
ElementsAreMatcher6(const T1 &e1, const T2 &e2, const T3 &e3, const T4 &e4, const T5 &e5, const T6 &e6)
Definition: gmock-generated-matchers.h:461
 
Definition: gmock-generated-matchers.h:459
 
Definition: gmock-generated-matchers.h:291
 
const T3 & e3_
Definition: gmock-generated-matchers.h:564
 
const T1 & e1_
Definition: gmock-generated-matchers.h:416
 
const T5 & e5_
Definition: gmock-generated-matchers.h:526
 
const T6 & e6_
Definition: gmock-generated-matchers.h:567
 
const T1 & e1_
Definition: gmock-generated-matchers.h:650
 
const T5 & e5_
Definition: gmock-generated-matchers.h:452
 
const T4 & e4_
Definition: gmock-generated-matchers.h:525
 
const T3 & e3_
Definition: gmock-generated-matchers.h:388
 
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
Definition: gmock-generated-matchers.h:671
 
#define GTEST_DISALLOW_ASSIGN_(type)
Definition: gtest-port.h:615
 
const T1 & e1_
Definition: gmock-generated-matchers.h:448
 
const T3 & e3_
Definition: gmock-generated-matchers.h:418
 
Definition: gmock-generated-matchers.h:67
 
internal::ElementsAreArrayMatcher< T > ElementsAreArray(const T *first, size_t count)
Definition: gmock-generated-matchers.h:841
 
internal::EitherOfMatcher< Matcher1, internal::EitherOfMatcher< Matcher2, internal::EitherOfMatcher< Matcher3, internal::EitherOfMatcher< Matcher4, internal::EitherOfMatcher< Matcher5, internal::EitherOfMatcher< Matcher6, internal::EitherOfMatcher< Matcher7, internal::EitherOfMatcher< Matcher8, internal::EitherOfMatcher< Matcher9, Matcher10 > > > > > > > > > AnyOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5, Matcher6 m6, Matcher7 m7, Matcher8 m8, Matcher9 m9, Matcher10 m10)
Definition: gmock-generated-matchers.h:1032
 
internal::TupleFields< RawArgsTuple, k0, k1, k2, k3, k4, k5, k6, k7, k8, k9 >::type SelectedArgs
Definition: gmock-generated-matchers.h:226
 
const T2 & e2_
Definition: gmock-generated-matchers.h:485
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:149
 
const T6 & e6_
Definition: gmock-generated-matchers.h:610
 
const T2 & e2_
Definition: gmock-generated-matchers.h:651
 
ElementsAreMatcher8(const T1 &e1, const T2 &e2, const T3 &e3, const T4 &e4, const T5 &e5, const T6 &e6, const T7 &e7, const T8 &e8)
Definition: gmock-generated-matchers.h:537
 
ElementsAreMatcher2(const T1 &e1, const T2 &e2)
Definition: gmock-generated-matchers.h:341
 
ElementsAreMatcher3(const T1 &e1, const T2 &e2, const T3 &e3)
Definition: gmock-generated-matchers.h:367
 
testing::internal::TupleFields< Tuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple type
Definition: gmock-generated-matchers.h:92
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:162
 
Definition: gmock-matchers.h:74
 
void PrintIfNotEmpty(const internal::string &explanation, std::ostream *os)
Definition: gmock-matchers.h:458
 
const T3 & e3_
Definition: gmock-generated-matchers.h:524
 
const T9 & e9_
Definition: gmock-generated-matchers.h:658
 
internal::EitherOfMatcher< Matcher1, Matcher2 > AnyOf(Matcher1 m1, Matcher2 m2)
Definition: gmock-generated-matchers.h:950
 
const T1 & e1_
Definition: gmock-generated-matchers.h:605
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4)> type
Definition: gmock-generated-matchers.h:148
 
const T1 & e1_
Definition: gmock-generated-matchers.h:522
 
static void PrintIndices(::std::ostream *os)
Definition: gmock-generated-matchers.h:268
 
#define GMOCK_FIELD_TYPE_(Tuple, i)
Definition: gmock-generated-matchers.h:50
 
ElementsAreMatcher9(const T1 &e1, const T2 &e2, const T3 &e3, const T4 &e4, const T5 &e5, const T6 &e6, const T7 &e7, const T8 &e8, const T9 &e9)
Definition: gmock-generated-matchers.h:578
 
const T4 & e4_
Definition: gmock-generated-matchers.h:653
 
internal::ElementsAreMatcher0 ElementsAre()
Definition: gmock-generated-matchers.h:754
 
const T3 & e3_
Definition: gmock-generated-matchers.h:652
 
Definition: InputPrereqs.h:78
 
const T7 & e7_
Definition: gmock-generated-matchers.h:611
 
const T4 & e4_
Definition: gmock-generated-matchers.h:608
 
const T3 & e3_
Definition: gmock-generated-matchers.h:607
 
static SelectedArgs GetSelectedArgs(ArgsTuple args)
Definition: gmock-generated-matchers.h:262
 
Definition: gmock-generated-matchers.h:365
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7, k8,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:208
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:192
 
Definition: gmock-matchers.h:1360
 
const T2 & e2_
Definition: gmock-generated-matchers.h:359
 
Definition: gmock-matchers.h:174
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6), GMOCK_FIELD_TYPE_(Tuple, k7)> type
Definition: gmock-generated-matchers.h:191
 
const T4 & e4_
Definition: gmock-generated-matchers.h:565
 
const T2 & e2_
Definition: gmock-generated-matchers.h:606
 
const T6 & e6_
Definition: gmock-generated-matchers.h:527
 
Matcher< T > MakeMatcher(const MatcherInterface< T > *impl)
Definition: gmock-matchers.h:371
 
ArgsMatcher(const InnerMatcher &inner_matcher)
Definition: gmock-generated-matchers.h:293
 
Definition: gmock-matchers.h:2508
 
internal::BothOfMatcher< Matcher1, Matcher2 > AllOf(Matcher1 m1, Matcher2 m2)
Definition: gmock-generated-matchers.h:857
 
const T3 & e3_
Definition: gmock-generated-matchers.h:450
 
ElementsAreMatcher7(const T1 &e1, const T2 &e2, const T3 &e3, const T4 &e4, const T5 &e5, const T6 &e6, const T7 &e7)
Definition: gmock-generated-matchers.h:498
 
static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:80
 
const T5 & e5_
Definition: gmock-generated-matchers.h:654
 
Definition: gmock-generated-matchers.h:496
 
const T4 & e4_
Definition: gmock-generated-matchers.h:451
 
const T1 & e1_
Definition: gmock-generated-matchers.h:562
 
ElementsAreMatcher10(const T1 &e1, const T2 &e2, const T3 &e3, const T4 &e4, const T5 &e5, const T6 &e6, const T7 &e7, const T8 &e8, const T9 &e9, const T10 &e10)
Definition: gmock-generated-matchers.h:622
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:137
 
const T7 & e7_
Definition: gmock-generated-matchers.h:568
 
const T10 & e10_
Definition: gmock-generated-matchers.h:659
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3)> type
Definition: gmock-generated-matchers.h:136
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6)> type
Definition: gmock-generated-matchers.h:175
 
const T7 & e7_
Definition: gmock-generated-matchers.h:528
 
const T2 & e2_
Definition: gmock-generated-matchers.h:417
 
Definition: gmock-matchers.h:251
 
testing::internal::TupleFields< Tuple,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &)
Definition: gmock-generated-matchers.h:93
 
Definition: gmock-generated-matchers.h:394
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5)> type
Definition: gmock-generated-matchers.h:161
 
virtual bool MatchAndExplain(ArgsTuple args, MatchResultListener *listener) const 
Definition: gmock-generated-matchers.h:233
 
const T6 & e6_
Definition: gmock-generated-matchers.h:655
 
Definition: gmock-generated-matchers.h:620
 
testing::internal::TupleFields< Tuple, k0, k1,-1,-1,-1,-1,-1,-1,-1,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1)> type
Definition: gmock-generated-matchers.h:113
 
internal::BothOfMatcher< Matcher1, internal::BothOfMatcher< Matcher2, internal::BothOfMatcher< Matcher3, internal::BothOfMatcher< Matcher4, internal::BothOfMatcher< Matcher5, internal::BothOfMatcher< Matcher6, internal::BothOfMatcher< Matcher7, internal::BothOfMatcher< Matcher8, internal::BothOfMatcher< Matcher9, Matcher10 > > > > > > > > > AllOf(Matcher1 m1, Matcher2 m2, Matcher3 m3, Matcher4 m4, Matcher5 m5, Matcher6 m6, Matcher7 m7, Matcher8 m8, Matcher9 m9, Matcher10 m10)
Definition: gmock-generated-matchers.h:939
 
virtual void DescribeNegationTo(::std::ostream *os) const 
Definition: gmock-generated-matchers.h:255
 
Definition: gmock-generated-matchers.h:311
 
#define GTEST_REMOVE_REFERENCE_AND_CONST_(T)
Definition: gtest-internal.h:815
 
Definition: gmock-generated-matchers.h:221
 
const T2 & e2_
Definition: gmock-generated-matchers.h:449
 
testing::internal::TupleFields< Tuple, k0, k1, k2, k3, k4, k5, k6, k7, k8,-1 >::type ::std::tr1::tuple< GMOCK_FIELD_TYPE_(Tuple, k0), GMOCK_FIELD_TYPE_(Tuple, k1), GMOCK_FIELD_TYPE_(Tuple, k2), GMOCK_FIELD_TYPE_(Tuple, k3), GMOCK_FIELD_TYPE_(Tuple, k4), GMOCK_FIELD_TYPE_(Tuple, k5), GMOCK_FIELD_TYPE_(Tuple, k6), GMOCK_FIELD_TYPE_(Tuple, k7), GMOCK_FIELD_TYPE_(Tuple, k8)> type
Definition: gmock-generated-matchers.h:207
 
internal::string str() const 
Definition: gmock-matchers.h:179
 
const T2 & e2_
Definition: gmock-generated-matchers.h:387
 
testing::internal::TupleFields< Tuple, k0, k1, k2,-1,-1,-1,-1,-1,-1,-1 >::GetSelectedFields static type GetSelectedFields(const Tuple &t)
Definition: gmock-generated-matchers.h:125
 
const T9 & e9_
Definition: gmock-generated-matchers.h:613