Lines Matching full:template
247 // Template meta programming:
685 // tuple template as a friend (it complains that tuple is redefined). This
693 template <GTEST_10_TYPENAMES_(U)> friend class tuple; \
748 template <typename T0 = void, typename T1 = void, typename T2 = void,
759 template <typename T>
761 template <typename T>
769 template <typename T>
771 template <typename T>
778 template <int k> class Get;
782 template <bool kIndexValid, int kIndex, class Tuple>
785 template <GTEST_10_TYPENAMES_(T)>
790 template <GTEST_10_TYPENAMES_(T)>
795 template <GTEST_10_TYPENAMES_(T)>
800 template <GTEST_10_TYPENAMES_(T)>
805 template <GTEST_10_TYPENAMES_(T)>
810 template
815 template <GTEST_10_TYPENAMES_(T)>
820 template <GTEST_10_TYPENAMES_(T)>
825 template <GTEST_10_TYPENAMES_(T)>
830 template <GTEST_10_TYPENAMES_(T)>
837 template <>
845 template <GTEST_1_TYPENAMES_(T)>
848 template <int k> friend class gtest_internal::Get;
856 template <GTEST_1_TYPENAMES_(U)>
861 template <GTEST_1_TYPENAMES_(U)>
868 template <GTEST_1_TYPENAMES_(U)>
877 template <GTEST_2_TYPENAMES_(T)>
880 template <int k> friend class gtest_internal::Get;
889 template <GTEST_2_TYPENAMES_(U)>
891 template <typename U0, typename U1>
896 template <GTEST_2_TYPENAMES_(U)>
900 template <typename U0, typename U1>
909 template <GTEST_2_TYPENAMES_(U)>
920 template <GTEST_3_TYPENAMES_(T)>
923 template <int k> friend class gtest_internal::Get;
932 template <GTEST_3_TYPENAMES_(U)>
937 template <GTEST_3_TYPENAMES_(U)>
944 template <GTEST_3_TYPENAMES_(U)>
957 template <GTEST_4_TYPENAMES_(T)>
960 template <int k> friend class gtest_internal::Get;
970 template <GTEST_4_TYPENAMES_(U)>
976 template <GTEST_4_TYPENAMES_(U)>
983 template <GTEST_4_TYPENAMES_(U)>
998 template <GTEST_5_TYPENAMES_(T)>
1001 template <int k> friend class gtest_internal::Get;
1012 template <GTEST_5_TYPENAMES_(U)>
1018 template <GTEST_5_TYPENAMES_(U)>
1025 template <GTEST_5_TYPENAMES_(U)>
1042 template <GTEST_6_TYPENAMES_(T)>
1045 template <int k> friend class gtest_internal::Get;
1057 template <GTEST_6_TYPENAMES_(U)>
1063 template <GTEST_6_TYPENAMES_(U)>
1070 template <GTEST_6_TYPENAMES_(U)>
1089 template <GTEST_7_TYPENAMES_(T)>
1092 template <int k> friend class gtest_internal::Get;
1104 template <GTEST_7_TYPENAMES_(U)>
1110 template <GTEST_7_TYPENAMES_(U)>
1117 template <GTEST_7_TYPENAMES_(U)>
1138 template <GTEST_8_TYPENAMES_(T)>
1141 template <int k> friend class gtest_internal::Get;
1154 template <GTEST_8_TYPENAMES_(U)>
1160 template <GTEST_8_TYPENAMES_(U)>
1167 template <GTEST_8_TYPENAMES_(U)>
1190 template <GTEST_9_TYPENAMES_(T)>
1193 template <int k> friend class gtest_internal::Get;
1206 template <GTEST_9_TYPENAMES_(U)>
1212 template <GTEST_9_TYPENAMES_(U)>
1219 template <GTEST_9_TYPENAMES_(U)>
1244 template <GTEST_10_TYPENAMES_(T)>
1247 template <int k> friend class gtest_internal::Get;
1261 template <GTEST_10_TYPENAMES_(U)>
1268 template <GTEST_10_TYPENAMES_(U)>
1275 template <GTEST_10_TYPENAMES_(U)>
1310 template <GTEST_1_TYPENAMES_(T)>
1315 template <GTEST_2_TYPENAMES_(T)>
1320 template <GTEST_3_TYPENAMES_(T)>
1325 template <GTEST_4_TYPENAMES_(T)>
1331 template <GTEST_5_TYPENAMES_(T)>
1337 template <GTEST_6_TYPENAMES_(T)>
1343 template <GTEST_7_TYPENAMES_(T)>
1349 template <GTEST_8_TYPENAMES_(T)>
1355 template <GTEST_9_TYPENAMES_(T)>
1362 template <GTEST_10_TYPENAMES_(T)>
1371 template <typename Tuple> struct tuple_size;
1373 template <GTEST_0_TYPENAMES_(T)>
1378 template <GTEST_1_TYPENAMES_(T)>
1383 template <GTEST_2_TYPENAMES_(T)>
1388 template <GTEST_3_TYPENAMES_(T)>
1393 template <GTEST_4_TYPENAMES_(T)>
1398 template <GTEST_5_TYPENAMES_(T)>
1403 template <GTEST_6_TYPENAMES_(T)>
1408 template <GTEST_7_TYPENAMES_(T)>
1413 template <GTEST_8_TYPENAMES_(T)>
1418 template <GTEST_9_TYPENAMES_(T)>
1423 template <GTEST_10_TYPENAMES_(T)>
1428 template <int k, class Tuple>
1440 template <>
1443 template <class Tuple>
1447 template <class Tuple>
1452 template <>
1455 template <class Tuple>
1459 template <class Tuple>
1464 template <>
1467 template <class Tuple>
1471 template <class Tuple>
1476 template <>
1479 template <class Tuple>
1483 template <class Tuple>
1488 template <>
1491 template <class Tuple>
1495 template <class Tuple>
1500 template <>
1503 template <class Tuple>
1507 template <class Tuple>
1512 template <>
1515 template <class Tuple>
1519 template <class Tuple>
1524 template <>
1527 template <class Tuple>
1531 template <class Tuple>
1536 template <>
1539 template <class Tuple>
1543 template <class Tuple>
1548 template <>
1551 template <class Tuple>
1555 template <class Tuple>
1562 template <int k, GTEST_10_TYPENAMES_(T)>
1568 template <int k, GTEST_10_TYPENAMES_(T)>
1584 template <int kSize1, int kSize2>
1587 template <>
1589 template <class Tuple1, class Tuple2>
1595 template <int k>
1597 template <class Tuple1, class Tuple2>
1606 template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
1614 template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)>
1918 template <bool>
1945 // expr is a compile-time constant. (Template arguments must be
1958 // template argument list.)
1969 // This template is declared, but intentionally undefined.
1970 template <typename T1, typename T2>
1973 template <typename T>
1996 template <typename T>
2204 template<typename To>
2228 template<typename To, typename From> // use like this: DownCast_<T*>(foo);
2251 template <class Derived, class Base>
2380 template <typename T>
2564 // The template type argument T must have a public copy constructor.
2579 template <typename T>
2672 template <typename T>
2710 // const T& and const T* in a function template. These compilers
2711 // _can_ decide between class template specializations for T and T*,
2717 template <bool bool_value>
2722 template <bool bool_value> const bool bool_constant<bool_value>::value;
2727 template <typename T>
2730 template <typename T>
2733 template <typename Iterator>
2738 template <typename T>
2743 template <typename T>
2955 // This template class serves as a compile-time function from size to
2973 template <size_t size>
2982 template <>
2994 template <>
3179 template <typename T>
3186 template <typename T>
3220 template <typename T>
3274 // const T& and const T* in a function template. The Nokia compiler _can_
3275 // decide between class template specializations for T and T*, so a
3277 template <typename T>
3285 template <typename T>
3314 template <typename T>
3755 template <typename T>
3788 template <typename T1, typename T2>
3791 template <typename T>
3797 // template Types. This allows us to simulate variadic templates
3815 template <typename T1>
3820 template <typename T1, typename T2>
3826 template <typename T1, typename T2, typename T3>
3832 template <typename T1, typename T2, typename T3, typename T4>
3838 template <typename T1, typename T2, typename T3, typename T4, typename T5>
3844 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3851 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3858 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3865 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3872 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3879 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3887 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3895 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3903 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3911 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3920 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3930 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3940 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3950 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3960 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3970 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3981 template <typename T1, typename T2, typename T3, typename T4, typename T5,
3992 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4003 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4014 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4025 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4037 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4049 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4061 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4074 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4087 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4101 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4115 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4129 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4143 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4157 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4172 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4187 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4202 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4217 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4232 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4248 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4264 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4281 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4298 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4315 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4333 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4351 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4369 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4387 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4411 // compiler error, as gcc insists on printing out each template
4420 // Types template.
4421 template <typename T1 = internal::None, typename T2 = internal::None,
4453 template <>
4469 template <typename T1>
4485 template <typename T1, typename T2>
4501 template <typename T1, typename T2, typename T3>
4516 template <typename T1, typename T2, typename T3, typename T4>
4531 template <typename T1, typename T2, typename T3, typename T4, typename T5>
4546 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4562 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4578 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4593 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4608 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4623 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4639 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4656 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4673 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4689 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4705 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4722 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4739 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4756 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4772 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4788 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4805 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4822 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4839 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4856 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4872 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4890 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4908 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4926 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4944 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4961 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4979 template <typename T1, typename T2, typename T3, typename T4, typename T5,
4997 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5015 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5033 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5050 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5068 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5086 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5104 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5122 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5141 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5160 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5179 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5198 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5217 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5236 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5255 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5274 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5293 template <typename T1, typename T2, typename T3, typename T4, typename T5,
5315 # define GTEST_TEMPLATE_ template <typename T> class
5317 // The template "selector" struct TemplateSel<Tmpl> is used to
5318 // represent Tmpl, which must be a class template with one type
5321 // template "selected" by TemplateSel<Tmpl>.
5325 template <GTEST_TEMPLATE_ Tmpl>
5327 template <typename T>
5334 TmplSel::template Bind<T>::type
5336 // A unique struct template used as the default value for the
5337 // arguments of class template Templates. This allows us to simulate
5340 template <typename T>
5344 // represent template lists. In particular, TemplatesN<T1, T2, ...,
5347 // Head for the selector of the first template in the list, and Tail
5350 // The empty template list.
5353 // Template lists of length 1, 2, 3, and so on.
5355 template <GTEST_TEMPLATE_ T1>
5360 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
5366 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
5372 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5379 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5386 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5393 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5401 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5409 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5417 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5426 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5435 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5444 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5454 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5465 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5476 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5488 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5500 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5512 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5525 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5538 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5551 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5565 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5579 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5593 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5608 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5623 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5638 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5655 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5672 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5689 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5707 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5725 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5743 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5762 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5781 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5800 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5820 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5840 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5860 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5881 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5902 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5924 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5947 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5970 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
5993 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6017 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6041 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6065 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6090 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6119 // compiler error, as gcc insists on printing out each template
6128 // Templates template.
6129 template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT,
6161 template <>
6170 template <GTEST_TEMPLATE_ T1>
6179 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
6188 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
6196 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6205 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6214 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6223 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6233 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6243 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6253 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6264 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6275 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6286 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6299 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6312 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6325 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6339 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6353 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6367 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6382 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6397 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6412 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6428 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6444 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6460 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6477 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6494 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6512 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6531 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6550 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6568 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6587 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6606 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6625 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6645 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6665 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6685 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6706 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6727 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6748 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6770 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6793 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6816 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6840 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6864 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6888 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6913 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6938 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6963 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
6990 // The TypeList template makes it possible to use either a single type
6994 template <typename T>
6999 template <typename T1, typename T2, typename T3, typename T4, typename T5,
7051 template <typename T>
7163 // This template class represents an IEEE floating-point number
7165 // template parameters).
7189 // Template parameter:
7192 template <typename RawType>
7344 template <>
7346 template <>
7349 // Typedefs the instances of the FloatingPoint template class that we
7362 template <typename T>
7371 template <typename T>
7377 template <typename T>
7381 // the template. Therefore, the address of dummy_ is guaranteed to
7412 template <class TestClass>
7524 // Implementation note: The GTEST_TEMPLATE_ macro declares a template
7525 // template parameter. It's defined in gtest-type-util.h.
7526 template <GTEST_TEMPLATE_ Fixture, class TestSel, typename Types>
7559 template <GTEST_TEMPLATE_ Fixture, class TestSel>
7572 template <GTEST_TEMPLATE_ Fixture, typename Tests, typename Types>
7590 template <GTEST_TEMPLATE_ Fixture, typename Types>
7656 template <typename T1, typename T2>
7659 template <typename T>
7666 template <typename T>
7668 template <typename T>
7672 // T depends on template parameters.
7679 template <typename T>
7681 template <typename T>
7687 template <typename T, size_t N>
7696 template <typename T, size_t N>
7703 // T depends on template parameters.
7714 template <typename T>
7716 template <typename T>
7720 // depends on template parameters.
7732 // The argument T must depend on some template parameters.
7739 template <typename From, typename To>
7777 // C++Builder cannot use member overload resolution during template
7786 template <typename From, typename To>
7792 template <typename T>
7821 template <class C>
7829 template <class C>
7836 template<bool> struct EnableIf;
7837 template<> struct EnableIf<true> { typedef void type; }; // NOLINT
7845 template <typename T, typename U>
7849 template <typename T, typename U>
7853 template <typename T, typename U, size_t N>
7860 // lead to different copies of the template code.
7861 template <typename T, typename U>
7872 template <typename Iter, typename Element>
7885 template <typename T, typename U>
7889 template <typename T, typename U>
7893 template <typename T, typename U, size_t N>
7900 // would lead to different copies of the template code.
7901 template <typename T, typename U>
7924 template <typename Element>
9044 // a non-template class because different types of linked_ptr<> can refer to
9096 template <typename T>
9107 template <typename U> linked_ptr(linked_ptr<U> const& ptr) { copy(&ptr); }
9114 template <typename U> linked_ptr& operator=(linked_ptr<U> const& ptr) {
9139 template <typename U>
9143 template <typename U>
9149 template <typename U>
9164 template <typename U> void copy(linked_ptr<U> const* ptr) {
9173 template<typename T> inline
9178 template<typename T> inline
9186 template <typename T>
9323 template <typename T, TypeKind kTypeKind>
9338 template <typename T>
9350 template <typename T>
9390 template <typename Char, typename CharTraits, typename T>
9409 template <typename T>
9449 // We define UniversalPrinter as a class template (as opposed to a
9450 // function template), as we need to partially specialize it for
9452 template <typename T>
9455 template <typename T>
9460 template <typename C>
9494 template <typename T>
9526 template <typename T>
9544 template <typename T>
9638 template <typename T>
9681 template <typename T>
9687 // non-standard variadic template feature or not.
9693 template <typename T1>
9698 template <typename T1, typename T2>
9703 template <typename T1, typename T2, typename T3>
9708 template <typename T1, typename T2, typename T3, typename T4>
9713 template <typename T1, typename T2, typename T3, typename T4, typename T5>
9719 template <typename T1, typename T2, typename T3, typename T4, typename T5,
9726 template <typename T1, typename T2, typename T3, typename T4, typename T5,
9733 template <typename T1, typename T2, typename T3, typename T4, typename T5,
9740 template <typename T1, typename T2, typename T3, typename T4, typename T5,
9747 template <typename T1, typename T2, typename T3, typename T4, typename T5,
9757 template <typename T1, typename T2>
9770 template <typename T>
9802 template <typename T>
9833 template <typename T, size_t N>
9844 template <typename T>
9872 template <typename T>
9879 template <typename T>
9886 template <typename T, size_t N>
9893 template <>
9904 template <>
9913 template <>
9926 template <>
9934 template <typename T>
9943 template <typename T>
9954 // This helper template allows PrintTo() for tuples and
9962 template <size_t N>
9965 template <typename Tuple>
9975 template <typename Tuple>
9985 template <>
9987 template <typename Tuple>
9990 template <typename Tuple>
9994 // template here, even though the definition of
9997 // support specializing a method template of a class template.
9998 template <>
10000 template <typename Tuple>
10006 template <typename Tuple>
10016 template <typename T>
10027 template <typename Tuple>
10038 template <typename T>
10063 template <typename> class ParamGeneratorInterface;
10064 template <typename> class ParamGenerator;
10068 template <typename T>
10098 template <typename T>
10141 template <typename T>
10158 template<typename T>
10182 template <typename T, typename IncrementT>
10267 template <typename T>
10270 template <typename ForwardIterator>
10352 template <class TestClass>
10373 template <class ParamType>
10389 template <class TestCase>
10443 template <class TestCase>
10568 template <class TestCase>
10678 template <typename ForwardIterator>
10683 template <typename T, size_t N>
10686 template <class Container>
10693 template <typename T1>
10698 template <typename T>
10708 template <typename T1, typename T2>
10713 template <typename T>
10727 template <typename T1, typename T2, typename T3>
10732 template <typename T>
10748 template <typename T1, typename T2, typename T3, typename T4>
10754 template <typename T>
10771 template <typename T1, typename T2, typename T3, typename T4, typename T5>
10777 template <typename T>
10795 template <typename T1, typename T2, typename T3, typename T4, typename T5,
10802 template <typename T>
10822 template <typename T1, typename T2, typename T3, typename T4, typename T5,
10829 template <typename T>
10850 template <typename T1, typename T2, typename T3, typename T4, typename T5,
10858 template <typename T>
10880 template <typename T1, typename T2, typename T3, typename T4, typename T5,
10888 template <typename T>
10912 template <typename T1, typename T2, typename T3, typename T4, typename T5,
10920 template <typename T>
10945 template <typename T1, typename T2, typename T3, typename T4, typename T5,
10954 template <typename T>
10980 template <typename T1, typename T2, typename T3, typename T4, typename T5,
10989 template <typename T>
11017 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11027 template <typename T>
11056 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11066 template <typename T>
11096 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11106 template <typename T>
11138 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11150 template <typename T>
11183 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11195 template <typename T>
11229 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11241 template <typename T>
11277 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11289 template <typename T>
11326 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11339 template <typename T>
11377 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11391 template <typename T>
11431 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11445 template <typename T>
11486 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11501 template <typename T>
11543 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11558 template <typename T>
11602 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11617 template <typename T>
11662 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11678 template <typename T>
11724 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11741 template <typename T>
11789 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11806 template <typename T>
11855 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11872 template <typename T>
11922 template <typename T1, typename T2, typename T3, typename T4, typename T5,
11940 template <typename T>
11992 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12011 template <typename T>
12064 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12083 template <typename T>
12137 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12157 template <typename T>
12213 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12233 template <typename T>
12290 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12310 template <typename T>
12368 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12389 template <typename T>
12449 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12471 template <typename T>
12532 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12554 template <typename T>
12616 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12638 template <typename T>
12702 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12725 template <typename T>
12790 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12814 template <typename T>
12880 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12904 template <typename T>
12972 template <typename T1, typename T2, typename T3, typename T4, typename T5,
12996 template <typename T>
13065 template <typename T1, typename T2, typename T3, typename T4, typename T5,
13090 template <typename T>
13160 template <typename T1, typename T2, typename T3, typename T4, typename T5,
13185 template <typename T>
13257 template <typename T1, typename T2, typename T3, typename T4, typename T5,
13283 template <typename T>
13356 template <typename T1, typename T2, typename T3, typename T4, typename T5,
13383 template <typename T>
13457 template <typename T1, typename T2, typename T3, typename T4, typename T5,
13484 template <typename T>
13560 template <typename T1, typename T2, typename T3, typename T4, typename T5,
13587 template <typename T>
13664 template <typename T1, typename T2, typename T3, typename T4, typename T5,
13691 template <typename T>
13775 template <typename T1, typename T2>
13890 template <typename T1, typename T2, typename T3>
14022 template <typename T1, typename T2, typename T3, typename T4>
14173 template <typename T1, typename T2, typename T3, typename T4, typename T5>
14340 template <typename T1, typename T2, typename T3, typename T4, typename T5,
14526 template <typename T1, typename T2, typename T3, typename T4, typename T5,
14729 template <typename T1, typename T2, typename T3, typename T4, typename T5,
14951 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15190 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15452 template <class Generator1, class Generator2>
15457 template <typename T1, typename T2>
15473 template <class Generator1, class Generator2, class Generator3>
15479 template <typename T1, typename T2, typename T3>
15497 template <class Generator1, class Generator2, class Generator3,
15504 template <typename T1, typename T2, typename T3, typename T4>
15524 template <class Generator1, class Generator2, class Generator3,
15531 template <typename T1, typename T2, typename T3, typename T4, typename T5>
15553 template <class Generator1, class Generator2, class Generator3,
15561 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15586 template <class Generator1, class Generator2, class Generator3,
15594 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15622 template <class Generator1, class Generator2, class Generator3,
15632 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15662 template <class Generator1, class Generator2, class Generator3,
15673 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15706 template <class Generator1, class Generator2, class Generator3,
15717 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15808 template <typename T, typename IncrementT>
15814 template <typename T>
15874 template <typename ForwardIterator>
15884 template <typename T, size_t N>
15889 template <class Container>
15914 template <typename T1>
15919 template <typename T1, typename T2>
15924 template <typename T1, typename T2, typename T3>
15929 template <typename T1, typename T2, typename T3, typename T4>
15934 template <typename T1, typename T2, typename T3, typename T4, typename T5>
15940 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15947 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15955 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15963 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15971 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15979 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15989 template <typename T1, typename T2, typename T3, typename T4, typename T5,
15999 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16009 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16020 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16031 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16044 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16057 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16070 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16083 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16096 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16110 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16126 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16142 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16158 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16174 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16192 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16210 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16229 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16248 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16267 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16287 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16308 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16329 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16350 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16371 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16394 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16418 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16442 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16466 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16490 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16515 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16542 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16569 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16596 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16623 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16651 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16679 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16708 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16737 template <typename T1, typename T2, typename T3, typename T4, typename T5,
16840 template <typename Generator1, typename Generator2>
16847 template <typename Generator1, typename Generator2, typename Generator3>
16854 template <typename Generator1, typename Generator2, typename Generator3,
16865 template <typename Generator1, typename Generator2, typename Generator3,
16876 template <typename Generator1, typename Generator2, typename Generator3,
16887 template <typename Generator1, typename Generator2, typename Generator3,
16900 template <typename Generator1, typename Generator2, typename Generator3,
16913 template <typename Generator1, typename Generator2, typename Generator3,
16927 template <typename Generator1, typename Generator2, typename Generator3,
17266 // First, define a fixture class template. It should be parameterized
17268 template <typename T>
17291 // Since we are inside a derived class template, C++ requires use to
17326 // First, define a fixture class template. It should be parameterized
17328 template <typename T>
17383 // The 'Types' template argument below must have spaces around it
17384 // since some compilers may choke on '>>' when passing a template
17391 template <typename gtest_TypeParam_> \
17406 template <typename gtest_TypeParam_> \
17446 template <typename gtest_TypeParam_> \
17457 template <typename gtest_TypeParam_> \
17468 // The 'Types' template argument below must have spaces around it
17469 // since some compilers may choke on '>>' when passing a template
17696 template <typename T> AssertionResult& operator<<(const T& value) {
18768 template <typename ToPrint, typename OtherOperand>
18777 template <typename ToPrint, size_t N, typename OtherOperand>
18789 template <typename OtherOperand> \
18808 template <> \
18844 template <typename T1, typename T2>
18851 template <typename T1, typename T2>
18885 // The helper class for {ASSERT|EXPECT}_EQ. The template argument
18889 template <bool lhs_is_null_literal>
18893 template <typename T1, typename T2>
18919 template <>
18926 template <typename T1, typename T2>
18936 // this template match better.
18944 template <typename T>
18948 // We used to have a second template parameter instead of Secret*. That
18949 // template parameter would deduce to 'long', making this a better match
18973 template <typename T1, typename T2>\
19092 // Helper template function for comparing floating-points.
19094 // Template parameter:
19099 template <typename RawType>
19213 template <typename T>
19242 template <class TestClass> friend class internal::ParameterizedTestFactory;
19245 template <typename T>
19251 template <typename T>
19427 template <typename Pred,
19468 template <typename Pred,
19516 template <typename Pred,
19571 template <typename Pred,
19633 template <typename Pred,
19850 // FloatingPoint template class in gtest-internal.h if you are
19949 // Instead of making StaticAssertTypeEq a class template, we make it a
19950 // function template that invokes a helper class template. This
19956 // When used inside a method of a class template,
19960 // template <typename T> class Foo {
19975 template <typename T1, typename T2>