00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
00045 #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
00046
00047 #include "gtest/internal/gtest-port.h"
00048 #include "gtest/internal/gtest-string.h"
00049
00050
00051
00052 # ifdef __GLIBCXX__
00053 # include <cxxabi.h>
00054 # elif defined(__HP_aCC)
00055 # include <acxx_demangle.h>
00056 # endif // __GLIBCXX__
00057
00058 namespace testing {
00059 namespace internal {
00060
00061
00062
00063
00064 template <typename T>
00065 String GetTypeName() {
00066 # if GTEST_HAS_RTTI
00067
00068 const char* const name = typeid(T).name();
00069 # if defined(__GLIBCXX__) || defined(__HP_aCC)
00070 int status = 0;
00071
00072
00073 # ifdef __GLIBCXX__
00074 using abi::__cxa_demangle;
00075 # endif // __GLIBCXX__
00076 char* const readable_name = __cxa_demangle(name, 0, 0, &status);
00077 const String name_str(status == 0 ? readable_name : name);
00078 free(readable_name);
00079 return name_str;
00080 # else
00081 return name;
00082 # endif // __GLIBCXX__ || __HP_aCC
00083
00084 # else
00085
00086 return "<type>";
00087
00088 # endif // GTEST_HAS_RTTI
00089 }
00090
00091 #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
00092
00093
00094
00095
00096
00097 template <typename T1, typename T2>
00098 struct AssertTypeEq;
00099
00100 template <typename T>
00101 struct AssertTypeEq<T, T> {
00102 typedef bool type;
00103 };
00104
00105
00106
00107
00108
00109 struct None {};
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 struct Types0 {};
00120
00121
00122
00123 template <typename T1>
00124 struct Types1 {
00125 typedef T1 Head;
00126 typedef Types0 Tail;
00127 };
00128 template <typename T1, typename T2>
00129 struct Types2 {
00130 typedef T1 Head;
00131 typedef Types1<T2> Tail;
00132 };
00133
00134 template <typename T1, typename T2, typename T3>
00135 struct Types3 {
00136 typedef T1 Head;
00137 typedef Types2<T2, T3> Tail;
00138 };
00139
00140 template <typename T1, typename T2, typename T3, typename T4>
00141 struct Types4 {
00142 typedef T1 Head;
00143 typedef Types3<T2, T3, T4> Tail;
00144 };
00145
00146 template <typename T1, typename T2, typename T3, typename T4, typename T5>
00147 struct Types5 {
00148 typedef T1 Head;
00149 typedef Types4<T2, T3, T4, T5> Tail;
00150 };
00151
00152 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00153 typename T6>
00154 struct Types6 {
00155 typedef T1 Head;
00156 typedef Types5<T2, T3, T4, T5, T6> Tail;
00157 };
00158
00159 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00160 typename T6, typename T7>
00161 struct Types7 {
00162 typedef T1 Head;
00163 typedef Types6<T2, T3, T4, T5, T6, T7> Tail;
00164 };
00165
00166 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00167 typename T6, typename T7, typename T8>
00168 struct Types8 {
00169 typedef T1 Head;
00170 typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail;
00171 };
00172
00173 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00174 typename T6, typename T7, typename T8, typename T9>
00175 struct Types9 {
00176 typedef T1 Head;
00177 typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
00178 };
00179
00180 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00181 typename T6, typename T7, typename T8, typename T9, typename T10>
00182 struct Types10 {
00183 typedef T1 Head;
00184 typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
00185 };
00186
00187 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00188 typename T6, typename T7, typename T8, typename T9, typename T10,
00189 typename T11>
00190 struct Types11 {
00191 typedef T1 Head;
00192 typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
00193 };
00194
00195 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00196 typename T6, typename T7, typename T8, typename T9, typename T10,
00197 typename T11, typename T12>
00198 struct Types12 {
00199 typedef T1 Head;
00200 typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
00201 };
00202
00203 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00204 typename T6, typename T7, typename T8, typename T9, typename T10,
00205 typename T11, typename T12, typename T13>
00206 struct Types13 {
00207 typedef T1 Head;
00208 typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
00209 };
00210
00211 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00212 typename T6, typename T7, typename T8, typename T9, typename T10,
00213 typename T11, typename T12, typename T13, typename T14>
00214 struct Types14 {
00215 typedef T1 Head;
00216 typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail;
00217 };
00218
00219 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00220 typename T6, typename T7, typename T8, typename T9, typename T10,
00221 typename T11, typename T12, typename T13, typename T14, typename T15>
00222 struct Types15 {
00223 typedef T1 Head;
00224 typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
00225 T15> Tail;
00226 };
00227
00228 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00229 typename T6, typename T7, typename T8, typename T9, typename T10,
00230 typename T11, typename T12, typename T13, typename T14, typename T15,
00231 typename T16>
00232 struct Types16 {
00233 typedef T1 Head;
00234 typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00235 T16> Tail;
00236 };
00237
00238 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00239 typename T6, typename T7, typename T8, typename T9, typename T10,
00240 typename T11, typename T12, typename T13, typename T14, typename T15,
00241 typename T16, typename T17>
00242 struct Types17 {
00243 typedef T1 Head;
00244 typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00245 T16, T17> Tail;
00246 };
00247
00248 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00249 typename T6, typename T7, typename T8, typename T9, typename T10,
00250 typename T11, typename T12, typename T13, typename T14, typename T15,
00251 typename T16, typename T17, typename T18>
00252 struct Types18 {
00253 typedef T1 Head;
00254 typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00255 T16, T17, T18> Tail;
00256 };
00257
00258 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00259 typename T6, typename T7, typename T8, typename T9, typename T10,
00260 typename T11, typename T12, typename T13, typename T14, typename T15,
00261 typename T16, typename T17, typename T18, typename T19>
00262 struct Types19 {
00263 typedef T1 Head;
00264 typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00265 T16, T17, T18, T19> Tail;
00266 };
00267
00268 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00269 typename T6, typename T7, typename T8, typename T9, typename T10,
00270 typename T11, typename T12, typename T13, typename T14, typename T15,
00271 typename T16, typename T17, typename T18, typename T19, typename T20>
00272 struct Types20 {
00273 typedef T1 Head;
00274 typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00275 T16, T17, T18, T19, T20> Tail;
00276 };
00277
00278 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00279 typename T6, typename T7, typename T8, typename T9, typename T10,
00280 typename T11, typename T12, typename T13, typename T14, typename T15,
00281 typename T16, typename T17, typename T18, typename T19, typename T20,
00282 typename T21>
00283 struct Types21 {
00284 typedef T1 Head;
00285 typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00286 T16, T17, T18, T19, T20, T21> Tail;
00287 };
00288
00289 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00290 typename T6, typename T7, typename T8, typename T9, typename T10,
00291 typename T11, typename T12, typename T13, typename T14, typename T15,
00292 typename T16, typename T17, typename T18, typename T19, typename T20,
00293 typename T21, typename T22>
00294 struct Types22 {
00295 typedef T1 Head;
00296 typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00297 T16, T17, T18, T19, T20, T21, T22> Tail;
00298 };
00299
00300 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00301 typename T6, typename T7, typename T8, typename T9, typename T10,
00302 typename T11, typename T12, typename T13, typename T14, typename T15,
00303 typename T16, typename T17, typename T18, typename T19, typename T20,
00304 typename T21, typename T22, typename T23>
00305 struct Types23 {
00306 typedef T1 Head;
00307 typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00308 T16, T17, T18, T19, T20, T21, T22, T23> Tail;
00309 };
00310
00311 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00312 typename T6, typename T7, typename T8, typename T9, typename T10,
00313 typename T11, typename T12, typename T13, typename T14, typename T15,
00314 typename T16, typename T17, typename T18, typename T19, typename T20,
00315 typename T21, typename T22, typename T23, typename T24>
00316 struct Types24 {
00317 typedef T1 Head;
00318 typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00319 T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
00320 };
00321
00322 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00323 typename T6, typename T7, typename T8, typename T9, typename T10,
00324 typename T11, typename T12, typename T13, typename T14, typename T15,
00325 typename T16, typename T17, typename T18, typename T19, typename T20,
00326 typename T21, typename T22, typename T23, typename T24, typename T25>
00327 struct Types25 {
00328 typedef T1 Head;
00329 typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00330 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
00331 };
00332
00333 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00334 typename T6, typename T7, typename T8, typename T9, typename T10,
00335 typename T11, typename T12, typename T13, typename T14, typename T15,
00336 typename T16, typename T17, typename T18, typename T19, typename T20,
00337 typename T21, typename T22, typename T23, typename T24, typename T25,
00338 typename T26>
00339 struct Types26 {
00340 typedef T1 Head;
00341 typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00342 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
00343 };
00344
00345 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00346 typename T6, typename T7, typename T8, typename T9, typename T10,
00347 typename T11, typename T12, typename T13, typename T14, typename T15,
00348 typename T16, typename T17, typename T18, typename T19, typename T20,
00349 typename T21, typename T22, typename T23, typename T24, typename T25,
00350 typename T26, typename T27>
00351 struct Types27 {
00352 typedef T1 Head;
00353 typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00354 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
00355 };
00356
00357 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00358 typename T6, typename T7, typename T8, typename T9, typename T10,
00359 typename T11, typename T12, typename T13, typename T14, typename T15,
00360 typename T16, typename T17, typename T18, typename T19, typename T20,
00361 typename T21, typename T22, typename T23, typename T24, typename T25,
00362 typename T26, typename T27, typename T28>
00363 struct Types28 {
00364 typedef T1 Head;
00365 typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00366 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail;
00367 };
00368
00369 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00370 typename T6, typename T7, typename T8, typename T9, typename T10,
00371 typename T11, typename T12, typename T13, typename T14, typename T15,
00372 typename T16, typename T17, typename T18, typename T19, typename T20,
00373 typename T21, typename T22, typename T23, typename T24, typename T25,
00374 typename T26, typename T27, typename T28, typename T29>
00375 struct Types29 {
00376 typedef T1 Head;
00377 typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00378 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
00379 T29> Tail;
00380 };
00381
00382 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00383 typename T6, typename T7, typename T8, typename T9, typename T10,
00384 typename T11, typename T12, typename T13, typename T14, typename T15,
00385 typename T16, typename T17, typename T18, typename T19, typename T20,
00386 typename T21, typename T22, typename T23, typename T24, typename T25,
00387 typename T26, typename T27, typename T28, typename T29, typename T30>
00388 struct Types30 {
00389 typedef T1 Head;
00390 typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00391 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00392 T30> Tail;
00393 };
00394
00395 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00396 typename T6, typename T7, typename T8, typename T9, typename T10,
00397 typename T11, typename T12, typename T13, typename T14, typename T15,
00398 typename T16, typename T17, typename T18, typename T19, typename T20,
00399 typename T21, typename T22, typename T23, typename T24, typename T25,
00400 typename T26, typename T27, typename T28, typename T29, typename T30,
00401 typename T31>
00402 struct Types31 {
00403 typedef T1 Head;
00404 typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00405 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00406 T30, T31> Tail;
00407 };
00408
00409 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00410 typename T6, typename T7, typename T8, typename T9, typename T10,
00411 typename T11, typename T12, typename T13, typename T14, typename T15,
00412 typename T16, typename T17, typename T18, typename T19, typename T20,
00413 typename T21, typename T22, typename T23, typename T24, typename T25,
00414 typename T26, typename T27, typename T28, typename T29, typename T30,
00415 typename T31, typename T32>
00416 struct Types32 {
00417 typedef T1 Head;
00418 typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00419 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00420 T30, T31, T32> Tail;
00421 };
00422
00423 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00424 typename T6, typename T7, typename T8, typename T9, typename T10,
00425 typename T11, typename T12, typename T13, typename T14, typename T15,
00426 typename T16, typename T17, typename T18, typename T19, typename T20,
00427 typename T21, typename T22, typename T23, typename T24, typename T25,
00428 typename T26, typename T27, typename T28, typename T29, typename T30,
00429 typename T31, typename T32, typename T33>
00430 struct Types33 {
00431 typedef T1 Head;
00432 typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00433 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00434 T30, T31, T32, T33> Tail;
00435 };
00436
00437 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00438 typename T6, typename T7, typename T8, typename T9, typename T10,
00439 typename T11, typename T12, typename T13, typename T14, typename T15,
00440 typename T16, typename T17, typename T18, typename T19, typename T20,
00441 typename T21, typename T22, typename T23, typename T24, typename T25,
00442 typename T26, typename T27, typename T28, typename T29, typename T30,
00443 typename T31, typename T32, typename T33, typename T34>
00444 struct Types34 {
00445 typedef T1 Head;
00446 typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00447 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00448 T30, T31, T32, T33, T34> Tail;
00449 };
00450
00451 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00452 typename T6, typename T7, typename T8, typename T9, typename T10,
00453 typename T11, typename T12, typename T13, typename T14, typename T15,
00454 typename T16, typename T17, typename T18, typename T19, typename T20,
00455 typename T21, typename T22, typename T23, typename T24, typename T25,
00456 typename T26, typename T27, typename T28, typename T29, typename T30,
00457 typename T31, typename T32, typename T33, typename T34, typename T35>
00458 struct Types35 {
00459 typedef T1 Head;
00460 typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00461 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00462 T30, T31, T32, T33, T34, T35> Tail;
00463 };
00464
00465 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00466 typename T6, typename T7, typename T8, typename T9, typename T10,
00467 typename T11, typename T12, typename T13, typename T14, typename T15,
00468 typename T16, typename T17, typename T18, typename T19, typename T20,
00469 typename T21, typename T22, typename T23, typename T24, typename T25,
00470 typename T26, typename T27, typename T28, typename T29, typename T30,
00471 typename T31, typename T32, typename T33, typename T34, typename T35,
00472 typename T36>
00473 struct Types36 {
00474 typedef T1 Head;
00475 typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00476 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00477 T30, T31, T32, T33, T34, T35, T36> Tail;
00478 };
00479
00480 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00481 typename T6, typename T7, typename T8, typename T9, typename T10,
00482 typename T11, typename T12, typename T13, typename T14, typename T15,
00483 typename T16, typename T17, typename T18, typename T19, typename T20,
00484 typename T21, typename T22, typename T23, typename T24, typename T25,
00485 typename T26, typename T27, typename T28, typename T29, typename T30,
00486 typename T31, typename T32, typename T33, typename T34, typename T35,
00487 typename T36, typename T37>
00488 struct Types37 {
00489 typedef T1 Head;
00490 typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00491 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00492 T30, T31, T32, T33, T34, T35, T36, T37> Tail;
00493 };
00494
00495 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00496 typename T6, typename T7, typename T8, typename T9, typename T10,
00497 typename T11, typename T12, typename T13, typename T14, typename T15,
00498 typename T16, typename T17, typename T18, typename T19, typename T20,
00499 typename T21, typename T22, typename T23, typename T24, typename T25,
00500 typename T26, typename T27, typename T28, typename T29, typename T30,
00501 typename T31, typename T32, typename T33, typename T34, typename T35,
00502 typename T36, typename T37, typename T38>
00503 struct Types38 {
00504 typedef T1 Head;
00505 typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00506 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00507 T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
00508 };
00509
00510 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00511 typename T6, typename T7, typename T8, typename T9, typename T10,
00512 typename T11, typename T12, typename T13, typename T14, typename T15,
00513 typename T16, typename T17, typename T18, typename T19, typename T20,
00514 typename T21, typename T22, typename T23, typename T24, typename T25,
00515 typename T26, typename T27, typename T28, typename T29, typename T30,
00516 typename T31, typename T32, typename T33, typename T34, typename T35,
00517 typename T36, typename T37, typename T38, typename T39>
00518 struct Types39 {
00519 typedef T1 Head;
00520 typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00521 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00522 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
00523 };
00524
00525 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00526 typename T6, typename T7, typename T8, typename T9, typename T10,
00527 typename T11, typename T12, typename T13, typename T14, typename T15,
00528 typename T16, typename T17, typename T18, typename T19, typename T20,
00529 typename T21, typename T22, typename T23, typename T24, typename T25,
00530 typename T26, typename T27, typename T28, typename T29, typename T30,
00531 typename T31, typename T32, typename T33, typename T34, typename T35,
00532 typename T36, typename T37, typename T38, typename T39, typename T40>
00533 struct Types40 {
00534 typedef T1 Head;
00535 typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00536 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00537 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
00538 };
00539
00540 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00541 typename T6, typename T7, typename T8, typename T9, typename T10,
00542 typename T11, typename T12, typename T13, typename T14, typename T15,
00543 typename T16, typename T17, typename T18, typename T19, typename T20,
00544 typename T21, typename T22, typename T23, typename T24, typename T25,
00545 typename T26, typename T27, typename T28, typename T29, typename T30,
00546 typename T31, typename T32, typename T33, typename T34, typename T35,
00547 typename T36, typename T37, typename T38, typename T39, typename T40,
00548 typename T41>
00549 struct Types41 {
00550 typedef T1 Head;
00551 typedef Types40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00552 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00553 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
00554 };
00555
00556 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00557 typename T6, typename T7, typename T8, typename T9, typename T10,
00558 typename T11, typename T12, typename T13, typename T14, typename T15,
00559 typename T16, typename T17, typename T18, typename T19, typename T20,
00560 typename T21, typename T22, typename T23, typename T24, typename T25,
00561 typename T26, typename T27, typename T28, typename T29, typename T30,
00562 typename T31, typename T32, typename T33, typename T34, typename T35,
00563 typename T36, typename T37, typename T38, typename T39, typename T40,
00564 typename T41, typename T42>
00565 struct Types42 {
00566 typedef T1 Head;
00567 typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00568 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00569 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> Tail;
00570 };
00571
00572 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00573 typename T6, typename T7, typename T8, typename T9, typename T10,
00574 typename T11, typename T12, typename T13, typename T14, typename T15,
00575 typename T16, typename T17, typename T18, typename T19, typename T20,
00576 typename T21, typename T22, typename T23, typename T24, typename T25,
00577 typename T26, typename T27, typename T28, typename T29, typename T30,
00578 typename T31, typename T32, typename T33, typename T34, typename T35,
00579 typename T36, typename T37, typename T38, typename T39, typename T40,
00580 typename T41, typename T42, typename T43>
00581 struct Types43 {
00582 typedef T1 Head;
00583 typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00584 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00585 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
00586 T43> Tail;
00587 };
00588
00589 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00590 typename T6, typename T7, typename T8, typename T9, typename T10,
00591 typename T11, typename T12, typename T13, typename T14, typename T15,
00592 typename T16, typename T17, typename T18, typename T19, typename T20,
00593 typename T21, typename T22, typename T23, typename T24, typename T25,
00594 typename T26, typename T27, typename T28, typename T29, typename T30,
00595 typename T31, typename T32, typename T33, typename T34, typename T35,
00596 typename T36, typename T37, typename T38, typename T39, typename T40,
00597 typename T41, typename T42, typename T43, typename T44>
00598 struct Types44 {
00599 typedef T1 Head;
00600 typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00601 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00602 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
00603 T44> Tail;
00604 };
00605
00606 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00607 typename T6, typename T7, typename T8, typename T9, typename T10,
00608 typename T11, typename T12, typename T13, typename T14, typename T15,
00609 typename T16, typename T17, typename T18, typename T19, typename T20,
00610 typename T21, typename T22, typename T23, typename T24, typename T25,
00611 typename T26, typename T27, typename T28, typename T29, typename T30,
00612 typename T31, typename T32, typename T33, typename T34, typename T35,
00613 typename T36, typename T37, typename T38, typename T39, typename T40,
00614 typename T41, typename T42, typename T43, typename T44, typename T45>
00615 struct Types45 {
00616 typedef T1 Head;
00617 typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00618 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00619 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
00620 T44, T45> Tail;
00621 };
00622
00623 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00624 typename T6, typename T7, typename T8, typename T9, typename T10,
00625 typename T11, typename T12, typename T13, typename T14, typename T15,
00626 typename T16, typename T17, typename T18, typename T19, typename T20,
00627 typename T21, typename T22, typename T23, typename T24, typename T25,
00628 typename T26, typename T27, typename T28, typename T29, typename T30,
00629 typename T31, typename T32, typename T33, typename T34, typename T35,
00630 typename T36, typename T37, typename T38, typename T39, typename T40,
00631 typename T41, typename T42, typename T43, typename T44, typename T45,
00632 typename T46>
00633 struct Types46 {
00634 typedef T1 Head;
00635 typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00636 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00637 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
00638 T44, T45, T46> Tail;
00639 };
00640
00641 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00642 typename T6, typename T7, typename T8, typename T9, typename T10,
00643 typename T11, typename T12, typename T13, typename T14, typename T15,
00644 typename T16, typename T17, typename T18, typename T19, typename T20,
00645 typename T21, typename T22, typename T23, typename T24, typename T25,
00646 typename T26, typename T27, typename T28, typename T29, typename T30,
00647 typename T31, typename T32, typename T33, typename T34, typename T35,
00648 typename T36, typename T37, typename T38, typename T39, typename T40,
00649 typename T41, typename T42, typename T43, typename T44, typename T45,
00650 typename T46, typename T47>
00651 struct Types47 {
00652 typedef T1 Head;
00653 typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00654 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00655 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
00656 T44, T45, T46, T47> Tail;
00657 };
00658
00659 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00660 typename T6, typename T7, typename T8, typename T9, typename T10,
00661 typename T11, typename T12, typename T13, typename T14, typename T15,
00662 typename T16, typename T17, typename T18, typename T19, typename T20,
00663 typename T21, typename T22, typename T23, typename T24, typename T25,
00664 typename T26, typename T27, typename T28, typename T29, typename T30,
00665 typename T31, typename T32, typename T33, typename T34, typename T35,
00666 typename T36, typename T37, typename T38, typename T39, typename T40,
00667 typename T41, typename T42, typename T43, typename T44, typename T45,
00668 typename T46, typename T47, typename T48>
00669 struct Types48 {
00670 typedef T1 Head;
00671 typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00672 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00673 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
00674 T44, T45, T46, T47, T48> Tail;
00675 };
00676
00677 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00678 typename T6, typename T7, typename T8, typename T9, typename T10,
00679 typename T11, typename T12, typename T13, typename T14, typename T15,
00680 typename T16, typename T17, typename T18, typename T19, typename T20,
00681 typename T21, typename T22, typename T23, typename T24, typename T25,
00682 typename T26, typename T27, typename T28, typename T29, typename T30,
00683 typename T31, typename T32, typename T33, typename T34, typename T35,
00684 typename T36, typename T37, typename T38, typename T39, typename T40,
00685 typename T41, typename T42, typename T43, typename T44, typename T45,
00686 typename T46, typename T47, typename T48, typename T49>
00687 struct Types49 {
00688 typedef T1 Head;
00689 typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00690 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00691 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
00692 T44, T45, T46, T47, T48, T49> Tail;
00693 };
00694
00695 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00696 typename T6, typename T7, typename T8, typename T9, typename T10,
00697 typename T11, typename T12, typename T13, typename T14, typename T15,
00698 typename T16, typename T17, typename T18, typename T19, typename T20,
00699 typename T21, typename T22, typename T23, typename T24, typename T25,
00700 typename T26, typename T27, typename T28, typename T29, typename T30,
00701 typename T31, typename T32, typename T33, typename T34, typename T35,
00702 typename T36, typename T37, typename T38, typename T39, typename T40,
00703 typename T41, typename T42, typename T43, typename T44, typename T45,
00704 typename T46, typename T47, typename T48, typename T49, typename T50>
00705 struct Types50 {
00706 typedef T1 Head;
00707 typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
00708 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
00709 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
00710 T44, T45, T46, T47, T48, T49, T50> Tail;
00711 };
00712
00713
00714 }
00715
00716
00717
00718
00719
00720
00721
00722
00723
00724
00725
00726
00727
00728
00729 template <typename T1 = internal::None, typename T2 = internal::None,
00730 typename T3 = internal::None, typename T4 = internal::None,
00731 typename T5 = internal::None, typename T6 = internal::None,
00732 typename T7 = internal::None, typename T8 = internal::None,
00733 typename T9 = internal::None, typename T10 = internal::None,
00734 typename T11 = internal::None, typename T12 = internal::None,
00735 typename T13 = internal::None, typename T14 = internal::None,
00736 typename T15 = internal::None, typename T16 = internal::None,
00737 typename T17 = internal::None, typename T18 = internal::None,
00738 typename T19 = internal::None, typename T20 = internal::None,
00739 typename T21 = internal::None, typename T22 = internal::None,
00740 typename T23 = internal::None, typename T24 = internal::None,
00741 typename T25 = internal::None, typename T26 = internal::None,
00742 typename T27 = internal::None, typename T28 = internal::None,
00743 typename T29 = internal::None, typename T30 = internal::None,
00744 typename T31 = internal::None, typename T32 = internal::None,
00745 typename T33 = internal::None, typename T34 = internal::None,
00746 typename T35 = internal::None, typename T36 = internal::None,
00747 typename T37 = internal::None, typename T38 = internal::None,
00748 typename T39 = internal::None, typename T40 = internal::None,
00749 typename T41 = internal::None, typename T42 = internal::None,
00750 typename T43 = internal::None, typename T44 = internal::None,
00751 typename T45 = internal::None, typename T46 = internal::None,
00752 typename T47 = internal::None, typename T48 = internal::None,
00753 typename T49 = internal::None, typename T50 = internal::None>
00754 struct Types {
00755 typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
00756 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
00757 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
00758 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
00759 };
00760
00761 template <>
00762 struct Types<internal::None, internal::None, internal::None, internal::None,
00763 internal::None, internal::None, internal::None, internal::None,
00764 internal::None, internal::None, internal::None, internal::None,
00765 internal::None, internal::None, internal::None, internal::None,
00766 internal::None, internal::None, internal::None, internal::None,
00767 internal::None, internal::None, internal::None, internal::None,
00768 internal::None, internal::None, internal::None, internal::None,
00769 internal::None, internal::None, internal::None, internal::None,
00770 internal::None, internal::None, internal::None, internal::None,
00771 internal::None, internal::None, internal::None, internal::None,
00772 internal::None, internal::None, internal::None, internal::None,
00773 internal::None, internal::None, internal::None, internal::None,
00774 internal::None, internal::None> {
00775 typedef internal::Types0 type;
00776 };
00777 template <typename T1>
00778 struct Types<T1, internal::None, internal::None, internal::None,
00779 internal::None, internal::None, internal::None, internal::None,
00780 internal::None, internal::None, internal::None, internal::None,
00781 internal::None, internal::None, internal::None, internal::None,
00782 internal::None, internal::None, internal::None, internal::None,
00783 internal::None, internal::None, internal::None, internal::None,
00784 internal::None, internal::None, internal::None, internal::None,
00785 internal::None, internal::None, internal::None, internal::None,
00786 internal::None, internal::None, internal::None, internal::None,
00787 internal::None, internal::None, internal::None, internal::None,
00788 internal::None, internal::None, internal::None, internal::None,
00789 internal::None, internal::None, internal::None, internal::None,
00790 internal::None, internal::None> {
00791 typedef internal::Types1<T1> type;
00792 };
00793 template <typename T1, typename T2>
00794 struct Types<T1, T2, internal::None, internal::None, internal::None,
00795 internal::None, internal::None, internal::None, internal::None,
00796 internal::None, internal::None, internal::None, internal::None,
00797 internal::None, internal::None, internal::None, internal::None,
00798 internal::None, internal::None, internal::None, internal::None,
00799 internal::None, internal::None, internal::None, internal::None,
00800 internal::None, internal::None, internal::None, internal::None,
00801 internal::None, internal::None, internal::None, internal::None,
00802 internal::None, internal::None, internal::None, internal::None,
00803 internal::None, internal::None, internal::None, internal::None,
00804 internal::None, internal::None, internal::None, internal::None,
00805 internal::None, internal::None, internal::None, internal::None,
00806 internal::None> {
00807 typedef internal::Types2<T1, T2> type;
00808 };
00809 template <typename T1, typename T2, typename T3>
00810 struct Types<T1, T2, T3, internal::None, internal::None, internal::None,
00811 internal::None, internal::None, internal::None, internal::None,
00812 internal::None, internal::None, internal::None, internal::None,
00813 internal::None, internal::None, internal::None, internal::None,
00814 internal::None, internal::None, internal::None, internal::None,
00815 internal::None, internal::None, internal::None, internal::None,
00816 internal::None, internal::None, internal::None, internal::None,
00817 internal::None, internal::None, internal::None, internal::None,
00818 internal::None, internal::None, internal::None, internal::None,
00819 internal::None, internal::None, internal::None, internal::None,
00820 internal::None, internal::None, internal::None, internal::None,
00821 internal::None, internal::None, internal::None, internal::None> {
00822 typedef internal::Types3<T1, T2, T3> type;
00823 };
00824 template <typename T1, typename T2, typename T3, typename T4>
00825 struct Types<T1, T2, T3, T4, internal::None, internal::None, internal::None,
00826 internal::None, internal::None, internal::None, internal::None,
00827 internal::None, internal::None, internal::None, internal::None,
00828 internal::None, internal::None, internal::None, internal::None,
00829 internal::None, internal::None, internal::None, internal::None,
00830 internal::None, internal::None, internal::None, internal::None,
00831 internal::None, internal::None, internal::None, internal::None,
00832 internal::None, internal::None, internal::None, internal::None,
00833 internal::None, internal::None, internal::None, internal::None,
00834 internal::None, internal::None, internal::None, internal::None,
00835 internal::None, internal::None, internal::None, internal::None,
00836 internal::None, internal::None, internal::None> {
00837 typedef internal::Types4<T1, T2, T3, T4> type;
00838 };
00839 template <typename T1, typename T2, typename T3, typename T4, typename T5>
00840 struct Types<T1, T2, T3, T4, T5, internal::None, internal::None,
00841 internal::None, internal::None, internal::None, internal::None,
00842 internal::None, internal::None, internal::None, internal::None,
00843 internal::None, internal::None, internal::None, internal::None,
00844 internal::None, internal::None, internal::None, internal::None,
00845 internal::None, internal::None, internal::None, internal::None,
00846 internal::None, internal::None, internal::None, internal::None,
00847 internal::None, internal::None, internal::None, internal::None,
00848 internal::None, internal::None, internal::None, internal::None,
00849 internal::None, internal::None, internal::None, internal::None,
00850 internal::None, internal::None, internal::None, internal::None,
00851 internal::None, internal::None, internal::None> {
00852 typedef internal::Types5<T1, T2, T3, T4, T5> type;
00853 };
00854 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00855 typename T6>
00856 struct Types<T1, T2, T3, T4, T5, T6, internal::None, internal::None,
00857 internal::None, internal::None, internal::None, internal::None,
00858 internal::None, internal::None, internal::None, internal::None,
00859 internal::None, internal::None, internal::None, internal::None,
00860 internal::None, internal::None, internal::None, internal::None,
00861 internal::None, internal::None, internal::None, internal::None,
00862 internal::None, internal::None, internal::None, internal::None,
00863 internal::None, internal::None, internal::None, internal::None,
00864 internal::None, internal::None, internal::None, internal::None,
00865 internal::None, internal::None, internal::None, internal::None,
00866 internal::None, internal::None, internal::None, internal::None,
00867 internal::None, internal::None> {
00868 typedef internal::Types6<T1, T2, T3, T4, T5, T6> type;
00869 };
00870 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00871 typename T6, typename T7>
00872 struct Types<T1, T2, T3, T4, T5, T6, T7, internal::None, internal::None,
00873 internal::None, internal::None, internal::None, internal::None,
00874 internal::None, internal::None, internal::None, internal::None,
00875 internal::None, internal::None, internal::None, internal::None,
00876 internal::None, internal::None, internal::None, internal::None,
00877 internal::None, internal::None, internal::None, internal::None,
00878 internal::None, internal::None, internal::None, internal::None,
00879 internal::None, internal::None, internal::None, internal::None,
00880 internal::None, internal::None, internal::None, internal::None,
00881 internal::None, internal::None, internal::None, internal::None,
00882 internal::None, internal::None, internal::None, internal::None,
00883 internal::None> {
00884 typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7> type;
00885 };
00886 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00887 typename T6, typename T7, typename T8>
00888 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, internal::None, internal::None,
00889 internal::None, internal::None, internal::None, internal::None,
00890 internal::None, internal::None, internal::None, internal::None,
00891 internal::None, internal::None, internal::None, internal::None,
00892 internal::None, internal::None, internal::None, internal::None,
00893 internal::None, internal::None, internal::None, internal::None,
00894 internal::None, internal::None, internal::None, internal::None,
00895 internal::None, internal::None, internal::None, internal::None,
00896 internal::None, internal::None, internal::None, internal::None,
00897 internal::None, internal::None, internal::None, internal::None,
00898 internal::None, internal::None, internal::None, internal::None> {
00899 typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8> type;
00900 };
00901 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00902 typename T6, typename T7, typename T8, typename T9>
00903 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None,
00904 internal::None, internal::None, internal::None, internal::None,
00905 internal::None, internal::None, internal::None, internal::None,
00906 internal::None, internal::None, internal::None, internal::None,
00907 internal::None, internal::None, internal::None, internal::None,
00908 internal::None, internal::None, internal::None, internal::None,
00909 internal::None, internal::None, internal::None, internal::None,
00910 internal::None, internal::None, internal::None, internal::None,
00911 internal::None, internal::None, internal::None, internal::None,
00912 internal::None, internal::None, internal::None, internal::None,
00913 internal::None, internal::None, internal::None, internal::None> {
00914 typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
00915 };
00916 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00917 typename T6, typename T7, typename T8, typename T9, typename T10>
00918 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None,
00919 internal::None, internal::None, internal::None, internal::None,
00920 internal::None, internal::None, internal::None, internal::None,
00921 internal::None, internal::None, internal::None, internal::None,
00922 internal::None, internal::None, internal::None, internal::None,
00923 internal::None, internal::None, internal::None, internal::None,
00924 internal::None, internal::None, internal::None, internal::None,
00925 internal::None, internal::None, internal::None, internal::None,
00926 internal::None, internal::None, internal::None, internal::None,
00927 internal::None, internal::None, internal::None, internal::None,
00928 internal::None, internal::None, internal::None> {
00929 typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
00930 };
00931 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00932 typename T6, typename T7, typename T8, typename T9, typename T10,
00933 typename T11>
00934 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None,
00935 internal::None, internal::None, internal::None, internal::None,
00936 internal::None, internal::None, internal::None, internal::None,
00937 internal::None, internal::None, internal::None, internal::None,
00938 internal::None, internal::None, internal::None, internal::None,
00939 internal::None, internal::None, internal::None, internal::None,
00940 internal::None, internal::None, internal::None, internal::None,
00941 internal::None, internal::None, internal::None, internal::None,
00942 internal::None, internal::None, internal::None, internal::None,
00943 internal::None, internal::None, internal::None, internal::None,
00944 internal::None, internal::None> {
00945 typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
00946 };
00947 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00948 typename T6, typename T7, typename T8, typename T9, typename T10,
00949 typename T11, typename T12>
00950 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None,
00951 internal::None, internal::None, internal::None, internal::None,
00952 internal::None, internal::None, internal::None, internal::None,
00953 internal::None, internal::None, internal::None, internal::None,
00954 internal::None, internal::None, internal::None, internal::None,
00955 internal::None, internal::None, internal::None, internal::None,
00956 internal::None, internal::None, internal::None, internal::None,
00957 internal::None, internal::None, internal::None, internal::None,
00958 internal::None, internal::None, internal::None, internal::None,
00959 internal::None, internal::None, internal::None, internal::None,
00960 internal::None> {
00961 typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
00962 T12> type;
00963 };
00964 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00965 typename T6, typename T7, typename T8, typename T9, typename T10,
00966 typename T11, typename T12, typename T13>
00967 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
00968 internal::None, internal::None, internal::None, internal::None,
00969 internal::None, internal::None, internal::None, internal::None,
00970 internal::None, internal::None, internal::None, internal::None,
00971 internal::None, internal::None, internal::None, internal::None,
00972 internal::None, internal::None, internal::None, internal::None,
00973 internal::None, internal::None, internal::None, internal::None,
00974 internal::None, internal::None, internal::None, internal::None,
00975 internal::None, internal::None, internal::None, internal::None,
00976 internal::None, internal::None, internal::None, internal::None,
00977 internal::None> {
00978 typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
00979 T13> type;
00980 };
00981 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00982 typename T6, typename T7, typename T8, typename T9, typename T10,
00983 typename T11, typename T12, typename T13, typename T14>
00984 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
00985 internal::None, internal::None, internal::None, internal::None,
00986 internal::None, internal::None, internal::None, internal::None,
00987 internal::None, internal::None, internal::None, internal::None,
00988 internal::None, internal::None, internal::None, internal::None,
00989 internal::None, internal::None, internal::None, internal::None,
00990 internal::None, internal::None, internal::None, internal::None,
00991 internal::None, internal::None, internal::None, internal::None,
00992 internal::None, internal::None, internal::None, internal::None,
00993 internal::None, internal::None, internal::None, internal::None> {
00994 typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
00995 T13, T14> type;
00996 };
00997 template <typename T1, typename T2, typename T3, typename T4, typename T5,
00998 typename T6, typename T7, typename T8, typename T9, typename T10,
00999 typename T11, typename T12, typename T13, typename T14, typename T15>
01000 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01001 internal::None, internal::None, internal::None, internal::None,
01002 internal::None, internal::None, internal::None, internal::None,
01003 internal::None, internal::None, internal::None, internal::None,
01004 internal::None, internal::None, internal::None, internal::None,
01005 internal::None, internal::None, internal::None, internal::None,
01006 internal::None, internal::None, internal::None, internal::None,
01007 internal::None, internal::None, internal::None, internal::None,
01008 internal::None, internal::None, internal::None, internal::None,
01009 internal::None, internal::None, internal::None> {
01010 typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01011 T13, T14, T15> type;
01012 };
01013 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01014 typename T6, typename T7, typename T8, typename T9, typename T10,
01015 typename T11, typename T12, typename T13, typename T14, typename T15,
01016 typename T16>
01017 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01018 T16, internal::None, internal::None, internal::None, internal::None,
01019 internal::None, internal::None, internal::None, internal::None,
01020 internal::None, internal::None, internal::None, internal::None,
01021 internal::None, internal::None, internal::None, internal::None,
01022 internal::None, internal::None, internal::None, internal::None,
01023 internal::None, internal::None, internal::None, internal::None,
01024 internal::None, internal::None, internal::None, internal::None,
01025 internal::None, internal::None, internal::None, internal::None,
01026 internal::None, internal::None> {
01027 typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01028 T13, T14, T15, T16> type;
01029 };
01030 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01031 typename T6, typename T7, typename T8, typename T9, typename T10,
01032 typename T11, typename T12, typename T13, typename T14, typename T15,
01033 typename T16, typename T17>
01034 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01035 T16, T17, internal::None, internal::None, internal::None, internal::None,
01036 internal::None, internal::None, internal::None, internal::None,
01037 internal::None, internal::None, internal::None, internal::None,
01038 internal::None, internal::None, internal::None, internal::None,
01039 internal::None, internal::None, internal::None, internal::None,
01040 internal::None, internal::None, internal::None, internal::None,
01041 internal::None, internal::None, internal::None, internal::None,
01042 internal::None, internal::None, internal::None, internal::None,
01043 internal::None> {
01044 typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01045 T13, T14, T15, T16, T17> type;
01046 };
01047 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01048 typename T6, typename T7, typename T8, typename T9, typename T10,
01049 typename T11, typename T12, typename T13, typename T14, typename T15,
01050 typename T16, typename T17, typename T18>
01051 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01052 T16, T17, T18, internal::None, internal::None, internal::None,
01053 internal::None, internal::None, internal::None, internal::None,
01054 internal::None, internal::None, internal::None, internal::None,
01055 internal::None, internal::None, internal::None, internal::None,
01056 internal::None, internal::None, internal::None, internal::None,
01057 internal::None, internal::None, internal::None, internal::None,
01058 internal::None, internal::None, internal::None, internal::None,
01059 internal::None, internal::None, internal::None, internal::None,
01060 internal::None> {
01061 typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01062 T13, T14, T15, T16, T17, T18> type;
01063 };
01064 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01065 typename T6, typename T7, typename T8, typename T9, typename T10,
01066 typename T11, typename T12, typename T13, typename T14, typename T15,
01067 typename T16, typename T17, typename T18, typename T19>
01068 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01069 T16, T17, T18, T19, internal::None, internal::None, internal::None,
01070 internal::None, internal::None, internal::None, internal::None,
01071 internal::None, internal::None, internal::None, internal::None,
01072 internal::None, internal::None, internal::None, internal::None,
01073 internal::None, internal::None, internal::None, internal::None,
01074 internal::None, internal::None, internal::None, internal::None,
01075 internal::None, internal::None, internal::None, internal::None,
01076 internal::None, internal::None, internal::None, internal::None> {
01077 typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01078 T13, T14, T15, T16, T17, T18, T19> type;
01079 };
01080 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01081 typename T6, typename T7, typename T8, typename T9, typename T10,
01082 typename T11, typename T12, typename T13, typename T14, typename T15,
01083 typename T16, typename T17, typename T18, typename T19, typename T20>
01084 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01085 T16, T17, T18, T19, T20, internal::None, internal::None, internal::None,
01086 internal::None, internal::None, internal::None, internal::None,
01087 internal::None, internal::None, internal::None, internal::None,
01088 internal::None, internal::None, internal::None, internal::None,
01089 internal::None, internal::None, internal::None, internal::None,
01090 internal::None, internal::None, internal::None, internal::None,
01091 internal::None, internal::None, internal::None, internal::None,
01092 internal::None, internal::None, internal::None> {
01093 typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01094 T13, T14, T15, T16, T17, T18, T19, T20> type;
01095 };
01096 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01097 typename T6, typename T7, typename T8, typename T9, typename T10,
01098 typename T11, typename T12, typename T13, typename T14, typename T15,
01099 typename T16, typename T17, typename T18, typename T19, typename T20,
01100 typename T21>
01101 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01102 T16, T17, T18, T19, T20, T21, internal::None, internal::None,
01103 internal::None, internal::None, internal::None, internal::None,
01104 internal::None, internal::None, internal::None, internal::None,
01105 internal::None, internal::None, internal::None, internal::None,
01106 internal::None, internal::None, internal::None, internal::None,
01107 internal::None, internal::None, internal::None, internal::None,
01108 internal::None, internal::None, internal::None, internal::None,
01109 internal::None, internal::None, internal::None> {
01110 typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01111 T13, T14, T15, T16, T17, T18, T19, T20, T21> type;
01112 };
01113 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01114 typename T6, typename T7, typename T8, typename T9, typename T10,
01115 typename T11, typename T12, typename T13, typename T14, typename T15,
01116 typename T16, typename T17, typename T18, typename T19, typename T20,
01117 typename T21, typename T22>
01118 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01119 T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None,
01120 internal::None, internal::None, internal::None, internal::None,
01121 internal::None, internal::None, internal::None, internal::None,
01122 internal::None, internal::None, internal::None, internal::None,
01123 internal::None, internal::None, internal::None, internal::None,
01124 internal::None, internal::None, internal::None, internal::None,
01125 internal::None, internal::None, internal::None, internal::None,
01126 internal::None, internal::None> {
01127 typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01128 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
01129 };
01130 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01131 typename T6, typename T7, typename T8, typename T9, typename T10,
01132 typename T11, typename T12, typename T13, typename T14, typename T15,
01133 typename T16, typename T17, typename T18, typename T19, typename T20,
01134 typename T21, typename T22, typename T23>
01135 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01136 T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None,
01137 internal::None, internal::None, internal::None, internal::None,
01138 internal::None, internal::None, internal::None, internal::None,
01139 internal::None, internal::None, internal::None, internal::None,
01140 internal::None, internal::None, internal::None, internal::None,
01141 internal::None, internal::None, internal::None, internal::None,
01142 internal::None, internal::None, internal::None, internal::None,
01143 internal::None> {
01144 typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01145 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
01146 };
01147 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01148 typename T6, typename T7, typename T8, typename T9, typename T10,
01149 typename T11, typename T12, typename T13, typename T14, typename T15,
01150 typename T16, typename T17, typename T18, typename T19, typename T20,
01151 typename T21, typename T22, typename T23, typename T24>
01152 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01153 T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None,
01154 internal::None, internal::None, internal::None, internal::None,
01155 internal::None, internal::None, internal::None, internal::None,
01156 internal::None, internal::None, internal::None, internal::None,
01157 internal::None, internal::None, internal::None, internal::None,
01158 internal::None, internal::None, internal::None, internal::None,
01159 internal::None, internal::None, internal::None, internal::None,
01160 internal::None> {
01161 typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01162 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
01163 };
01164 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01165 typename T6, typename T7, typename T8, typename T9, typename T10,
01166 typename T11, typename T12, typename T13, typename T14, typename T15,
01167 typename T16, typename T17, typename T18, typename T19, typename T20,
01168 typename T21, typename T22, typename T23, typename T24, typename T25>
01169 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01170 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None,
01171 internal::None, internal::None, internal::None, internal::None,
01172 internal::None, internal::None, internal::None, internal::None,
01173 internal::None, internal::None, internal::None, internal::None,
01174 internal::None, internal::None, internal::None, internal::None,
01175 internal::None, internal::None, internal::None, internal::None,
01176 internal::None, internal::None, internal::None, internal::None> {
01177 typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01178 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
01179 };
01180 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01181 typename T6, typename T7, typename T8, typename T9, typename T10,
01182 typename T11, typename T12, typename T13, typename T14, typename T15,
01183 typename T16, typename T17, typename T18, typename T19, typename T20,
01184 typename T21, typename T22, typename T23, typename T24, typename T25,
01185 typename T26>
01186 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01187 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None,
01188 internal::None, internal::None, internal::None, internal::None,
01189 internal::None, internal::None, internal::None, internal::None,
01190 internal::None, internal::None, internal::None, internal::None,
01191 internal::None, internal::None, internal::None, internal::None,
01192 internal::None, internal::None, internal::None, internal::None,
01193 internal::None, internal::None, internal::None> {
01194 typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01195 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
01196 T26> type;
01197 };
01198 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01199 typename T6, typename T7, typename T8, typename T9, typename T10,
01200 typename T11, typename T12, typename T13, typename T14, typename T15,
01201 typename T16, typename T17, typename T18, typename T19, typename T20,
01202 typename T21, typename T22, typename T23, typename T24, typename T25,
01203 typename T26, typename T27>
01204 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01205 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None,
01206 internal::None, internal::None, internal::None, internal::None,
01207 internal::None, internal::None, internal::None, internal::None,
01208 internal::None, internal::None, internal::None, internal::None,
01209 internal::None, internal::None, internal::None, internal::None,
01210 internal::None, internal::None, internal::None, internal::None,
01211 internal::None, internal::None> {
01212 typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01213 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01214 T27> type;
01215 };
01216 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01217 typename T6, typename T7, typename T8, typename T9, typename T10,
01218 typename T11, typename T12, typename T13, typename T14, typename T15,
01219 typename T16, typename T17, typename T18, typename T19, typename T20,
01220 typename T21, typename T22, typename T23, typename T24, typename T25,
01221 typename T26, typename T27, typename T28>
01222 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01223 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
01224 internal::None, internal::None, internal::None, internal::None,
01225 internal::None, internal::None, internal::None, internal::None,
01226 internal::None, internal::None, internal::None, internal::None,
01227 internal::None, internal::None, internal::None, internal::None,
01228 internal::None, internal::None, internal::None, internal::None,
01229 internal::None, internal::None> {
01230 typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01231 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01232 T27, T28> type;
01233 };
01234 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01235 typename T6, typename T7, typename T8, typename T9, typename T10,
01236 typename T11, typename T12, typename T13, typename T14, typename T15,
01237 typename T16, typename T17, typename T18, typename T19, typename T20,
01238 typename T21, typename T22, typename T23, typename T24, typename T25,
01239 typename T26, typename T27, typename T28, typename T29>
01240 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01241 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
01242 internal::None, internal::None, internal::None, internal::None,
01243 internal::None, internal::None, internal::None, internal::None,
01244 internal::None, internal::None, internal::None, internal::None,
01245 internal::None, internal::None, internal::None, internal::None,
01246 internal::None, internal::None, internal::None, internal::None,
01247 internal::None> {
01248 typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01249 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01250 T27, T28, T29> type;
01251 };
01252 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01253 typename T6, typename T7, typename T8, typename T9, typename T10,
01254 typename T11, typename T12, typename T13, typename T14, typename T15,
01255 typename T16, typename T17, typename T18, typename T19, typename T20,
01256 typename T21, typename T22, typename T23, typename T24, typename T25,
01257 typename T26, typename T27, typename T28, typename T29, typename T30>
01258 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01259 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01260 internal::None, internal::None, internal::None, internal::None,
01261 internal::None, internal::None, internal::None, internal::None,
01262 internal::None, internal::None, internal::None, internal::None,
01263 internal::None, internal::None, internal::None, internal::None,
01264 internal::None, internal::None, internal::None, internal::None> {
01265 typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01266 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01267 T27, T28, T29, T30> type;
01268 };
01269 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01270 typename T6, typename T7, typename T8, typename T9, typename T10,
01271 typename T11, typename T12, typename T13, typename T14, typename T15,
01272 typename T16, typename T17, typename T18, typename T19, typename T20,
01273 typename T21, typename T22, typename T23, typename T24, typename T25,
01274 typename T26, typename T27, typename T28, typename T29, typename T30,
01275 typename T31>
01276 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01277 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01278 T31, internal::None, internal::None, internal::None, internal::None,
01279 internal::None, internal::None, internal::None, internal::None,
01280 internal::None, internal::None, internal::None, internal::None,
01281 internal::None, internal::None, internal::None, internal::None,
01282 internal::None, internal::None, internal::None> {
01283 typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01284 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01285 T27, T28, T29, T30, T31> type;
01286 };
01287 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01288 typename T6, typename T7, typename T8, typename T9, typename T10,
01289 typename T11, typename T12, typename T13, typename T14, typename T15,
01290 typename T16, typename T17, typename T18, typename T19, typename T20,
01291 typename T21, typename T22, typename T23, typename T24, typename T25,
01292 typename T26, typename T27, typename T28, typename T29, typename T30,
01293 typename T31, typename T32>
01294 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01295 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01296 T31, T32, internal::None, internal::None, internal::None, internal::None,
01297 internal::None, internal::None, internal::None, internal::None,
01298 internal::None, internal::None, internal::None, internal::None,
01299 internal::None, internal::None, internal::None, internal::None,
01300 internal::None, internal::None> {
01301 typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01302 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01303 T27, T28, T29, T30, T31, T32> type;
01304 };
01305 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01306 typename T6, typename T7, typename T8, typename T9, typename T10,
01307 typename T11, typename T12, typename T13, typename T14, typename T15,
01308 typename T16, typename T17, typename T18, typename T19, typename T20,
01309 typename T21, typename T22, typename T23, typename T24, typename T25,
01310 typename T26, typename T27, typename T28, typename T29, typename T30,
01311 typename T31, typename T32, typename T33>
01312 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01313 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01314 T31, T32, T33, internal::None, internal::None, internal::None,
01315 internal::None, internal::None, internal::None, internal::None,
01316 internal::None, internal::None, internal::None, internal::None,
01317 internal::None, internal::None, internal::None, internal::None,
01318 internal::None, internal::None> {
01319 typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01320 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01321 T27, T28, T29, T30, T31, T32, T33> type;
01322 };
01323 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01324 typename T6, typename T7, typename T8, typename T9, typename T10,
01325 typename T11, typename T12, typename T13, typename T14, typename T15,
01326 typename T16, typename T17, typename T18, typename T19, typename T20,
01327 typename T21, typename T22, typename T23, typename T24, typename T25,
01328 typename T26, typename T27, typename T28, typename T29, typename T30,
01329 typename T31, typename T32, typename T33, typename T34>
01330 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01331 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01332 T31, T32, T33, T34, internal::None, internal::None, internal::None,
01333 internal::None, internal::None, internal::None, internal::None,
01334 internal::None, internal::None, internal::None, internal::None,
01335 internal::None, internal::None, internal::None, internal::None,
01336 internal::None> {
01337 typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01338 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01339 T27, T28, T29, T30, T31, T32, T33, T34> type;
01340 };
01341 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01342 typename T6, typename T7, typename T8, typename T9, typename T10,
01343 typename T11, typename T12, typename T13, typename T14, typename T15,
01344 typename T16, typename T17, typename T18, typename T19, typename T20,
01345 typename T21, typename T22, typename T23, typename T24, typename T25,
01346 typename T26, typename T27, typename T28, typename T29, typename T30,
01347 typename T31, typename T32, typename T33, typename T34, typename T35>
01348 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01349 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01350 T31, T32, T33, T34, T35, internal::None, internal::None, internal::None,
01351 internal::None, internal::None, internal::None, internal::None,
01352 internal::None, internal::None, internal::None, internal::None,
01353 internal::None, internal::None, internal::None, internal::None> {
01354 typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01355 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01356 T27, T28, T29, T30, T31, T32, T33, T34, T35> type;
01357 };
01358 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01359 typename T6, typename T7, typename T8, typename T9, typename T10,
01360 typename T11, typename T12, typename T13, typename T14, typename T15,
01361 typename T16, typename T17, typename T18, typename T19, typename T20,
01362 typename T21, typename T22, typename T23, typename T24, typename T25,
01363 typename T26, typename T27, typename T28, typename T29, typename T30,
01364 typename T31, typename T32, typename T33, typename T34, typename T35,
01365 typename T36>
01366 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01367 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01368 T31, T32, T33, T34, T35, T36, internal::None, internal::None,
01369 internal::None, internal::None, internal::None, internal::None,
01370 internal::None, internal::None, internal::None, internal::None,
01371 internal::None, internal::None, internal::None, internal::None> {
01372 typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01373 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01374 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
01375 };
01376 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01377 typename T6, typename T7, typename T8, typename T9, typename T10,
01378 typename T11, typename T12, typename T13, typename T14, typename T15,
01379 typename T16, typename T17, typename T18, typename T19, typename T20,
01380 typename T21, typename T22, typename T23, typename T24, typename T25,
01381 typename T26, typename T27, typename T28, typename T29, typename T30,
01382 typename T31, typename T32, typename T33, typename T34, typename T35,
01383 typename T36, typename T37>
01384 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01385 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01386 T31, T32, T33, T34, T35, T36, T37, internal::None, internal::None,
01387 internal::None, internal::None, internal::None, internal::None,
01388 internal::None, internal::None, internal::None, internal::None,
01389 internal::None, internal::None, internal::None> {
01390 typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01391 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01392 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
01393 };
01394 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01395 typename T6, typename T7, typename T8, typename T9, typename T10,
01396 typename T11, typename T12, typename T13, typename T14, typename T15,
01397 typename T16, typename T17, typename T18, typename T19, typename T20,
01398 typename T21, typename T22, typename T23, typename T24, typename T25,
01399 typename T26, typename T27, typename T28, typename T29, typename T30,
01400 typename T31, typename T32, typename T33, typename T34, typename T35,
01401 typename T36, typename T37, typename T38>
01402 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01403 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01404 T31, T32, T33, T34, T35, T36, T37, T38, internal::None, internal::None,
01405 internal::None, internal::None, internal::None, internal::None,
01406 internal::None, internal::None, internal::None, internal::None,
01407 internal::None, internal::None> {
01408 typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01409 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01410 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
01411 };
01412 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01413 typename T6, typename T7, typename T8, typename T9, typename T10,
01414 typename T11, typename T12, typename T13, typename T14, typename T15,
01415 typename T16, typename T17, typename T18, typename T19, typename T20,
01416 typename T21, typename T22, typename T23, typename T24, typename T25,
01417 typename T26, typename T27, typename T28, typename T29, typename T30,
01418 typename T31, typename T32, typename T33, typename T34, typename T35,
01419 typename T36, typename T37, typename T38, typename T39>
01420 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01421 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01422 T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None,
01423 internal::None, internal::None, internal::None, internal::None,
01424 internal::None, internal::None, internal::None, internal::None,
01425 internal::None, internal::None> {
01426 typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01427 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01428 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
01429 };
01430 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01431 typename T6, typename T7, typename T8, typename T9, typename T10,
01432 typename T11, typename T12, typename T13, typename T14, typename T15,
01433 typename T16, typename T17, typename T18, typename T19, typename T20,
01434 typename T21, typename T22, typename T23, typename T24, typename T25,
01435 typename T26, typename T27, typename T28, typename T29, typename T30,
01436 typename T31, typename T32, typename T33, typename T34, typename T35,
01437 typename T36, typename T37, typename T38, typename T39, typename T40>
01438 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01439 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01440 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None,
01441 internal::None, internal::None, internal::None, internal::None,
01442 internal::None, internal::None, internal::None, internal::None,
01443 internal::None> {
01444 typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01445 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01446 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
01447 T40> type;
01448 };
01449 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01450 typename T6, typename T7, typename T8, typename T9, typename T10,
01451 typename T11, typename T12, typename T13, typename T14, typename T15,
01452 typename T16, typename T17, typename T18, typename T19, typename T20,
01453 typename T21, typename T22, typename T23, typename T24, typename T25,
01454 typename T26, typename T27, typename T28, typename T29, typename T30,
01455 typename T31, typename T32, typename T33, typename T34, typename T35,
01456 typename T36, typename T37, typename T38, typename T39, typename T40,
01457 typename T41>
01458 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01459 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01460 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None,
01461 internal::None, internal::None, internal::None, internal::None,
01462 internal::None, internal::None, internal::None, internal::None> {
01463 typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01464 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01465 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01466 T41> type;
01467 };
01468 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01469 typename T6, typename T7, typename T8, typename T9, typename T10,
01470 typename T11, typename T12, typename T13, typename T14, typename T15,
01471 typename T16, typename T17, typename T18, typename T19, typename T20,
01472 typename T21, typename T22, typename T23, typename T24, typename T25,
01473 typename T26, typename T27, typename T28, typename T29, typename T30,
01474 typename T31, typename T32, typename T33, typename T34, typename T35,
01475 typename T36, typename T37, typename T38, typename T39, typename T40,
01476 typename T41, typename T42>
01477 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01478 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01479 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None,
01480 internal::None, internal::None, internal::None, internal::None,
01481 internal::None, internal::None, internal::None> {
01482 typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01483 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01484 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01485 T41, T42> type;
01486 };
01487 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01488 typename T6, typename T7, typename T8, typename T9, typename T10,
01489 typename T11, typename T12, typename T13, typename T14, typename T15,
01490 typename T16, typename T17, typename T18, typename T19, typename T20,
01491 typename T21, typename T22, typename T23, typename T24, typename T25,
01492 typename T26, typename T27, typename T28, typename T29, typename T30,
01493 typename T31, typename T32, typename T33, typename T34, typename T35,
01494 typename T36, typename T37, typename T38, typename T39, typename T40,
01495 typename T41, typename T42, typename T43>
01496 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01497 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01498 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
01499 internal::None, internal::None, internal::None, internal::None,
01500 internal::None, internal::None, internal::None> {
01501 typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01502 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01503 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01504 T41, T42, T43> type;
01505 };
01506 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01507 typename T6, typename T7, typename T8, typename T9, typename T10,
01508 typename T11, typename T12, typename T13, typename T14, typename T15,
01509 typename T16, typename T17, typename T18, typename T19, typename T20,
01510 typename T21, typename T22, typename T23, typename T24, typename T25,
01511 typename T26, typename T27, typename T28, typename T29, typename T30,
01512 typename T31, typename T32, typename T33, typename T34, typename T35,
01513 typename T36, typename T37, typename T38, typename T39, typename T40,
01514 typename T41, typename T42, typename T43, typename T44>
01515 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01516 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01517 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
01518 internal::None, internal::None, internal::None, internal::None,
01519 internal::None, internal::None> {
01520 typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01521 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01522 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01523 T41, T42, T43, T44> type;
01524 };
01525 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01526 typename T6, typename T7, typename T8, typename T9, typename T10,
01527 typename T11, typename T12, typename T13, typename T14, typename T15,
01528 typename T16, typename T17, typename T18, typename T19, typename T20,
01529 typename T21, typename T22, typename T23, typename T24, typename T25,
01530 typename T26, typename T27, typename T28, typename T29, typename T30,
01531 typename T31, typename T32, typename T33, typename T34, typename T35,
01532 typename T36, typename T37, typename T38, typename T39, typename T40,
01533 typename T41, typename T42, typename T43, typename T44, typename T45>
01534 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01535 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01536 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
01537 internal::None, internal::None, internal::None, internal::None,
01538 internal::None> {
01539 typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01540 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01541 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01542 T41, T42, T43, T44, T45> type;
01543 };
01544 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01545 typename T6, typename T7, typename T8, typename T9, typename T10,
01546 typename T11, typename T12, typename T13, typename T14, typename T15,
01547 typename T16, typename T17, typename T18, typename T19, typename T20,
01548 typename T21, typename T22, typename T23, typename T24, typename T25,
01549 typename T26, typename T27, typename T28, typename T29, typename T30,
01550 typename T31, typename T32, typename T33, typename T34, typename T35,
01551 typename T36, typename T37, typename T38, typename T39, typename T40,
01552 typename T41, typename T42, typename T43, typename T44, typename T45,
01553 typename T46>
01554 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01555 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01556 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
01557 T46, internal::None, internal::None, internal::None, internal::None> {
01558 typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01559 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01560 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01561 T41, T42, T43, T44, T45, T46> type;
01562 };
01563 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01564 typename T6, typename T7, typename T8, typename T9, typename T10,
01565 typename T11, typename T12, typename T13, typename T14, typename T15,
01566 typename T16, typename T17, typename T18, typename T19, typename T20,
01567 typename T21, typename T22, typename T23, typename T24, typename T25,
01568 typename T26, typename T27, typename T28, typename T29, typename T30,
01569 typename T31, typename T32, typename T33, typename T34, typename T35,
01570 typename T36, typename T37, typename T38, typename T39, typename T40,
01571 typename T41, typename T42, typename T43, typename T44, typename T45,
01572 typename T46, typename T47>
01573 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01574 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01575 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
01576 T46, T47, internal::None, internal::None, internal::None> {
01577 typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01578 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01579 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01580 T41, T42, T43, T44, T45, T46, T47> type;
01581 };
01582 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01583 typename T6, typename T7, typename T8, typename T9, typename T10,
01584 typename T11, typename T12, typename T13, typename T14, typename T15,
01585 typename T16, typename T17, typename T18, typename T19, typename T20,
01586 typename T21, typename T22, typename T23, typename T24, typename T25,
01587 typename T26, typename T27, typename T28, typename T29, typename T30,
01588 typename T31, typename T32, typename T33, typename T34, typename T35,
01589 typename T36, typename T37, typename T38, typename T39, typename T40,
01590 typename T41, typename T42, typename T43, typename T44, typename T45,
01591 typename T46, typename T47, typename T48>
01592 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01593 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01594 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
01595 T46, T47, T48, internal::None, internal::None> {
01596 typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01597 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01598 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01599 T41, T42, T43, T44, T45, T46, T47, T48> type;
01600 };
01601 template <typename T1, typename T2, typename T3, typename T4, typename T5,
01602 typename T6, typename T7, typename T8, typename T9, typename T10,
01603 typename T11, typename T12, typename T13, typename T14, typename T15,
01604 typename T16, typename T17, typename T18, typename T19, typename T20,
01605 typename T21, typename T22, typename T23, typename T24, typename T25,
01606 typename T26, typename T27, typename T28, typename T29, typename T30,
01607 typename T31, typename T32, typename T33, typename T34, typename T35,
01608 typename T36, typename T37, typename T38, typename T39, typename T40,
01609 typename T41, typename T42, typename T43, typename T44, typename T45,
01610 typename T46, typename T47, typename T48, typename T49>
01611 struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
01612 T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
01613 T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
01614 T46, T47, T48, T49, internal::None> {
01615 typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
01616 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
01617 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
01618 T41, T42, T43, T44, T45, T46, T47, T48, T49> type;
01619 };
01620
01621 namespace internal {
01622
01623 # define GTEST_TEMPLATE_ template <typename T> class
01624
01625
01626
01627
01628
01629
01630
01631
01632
01633 template <GTEST_TEMPLATE_ Tmpl>
01634 struct TemplateSel {
01635 template <typename T>
01636 struct Bind {
01637 typedef Tmpl<T> type;
01638 };
01639 };
01640
01641 # define GTEST_BIND_(TmplSel, T) \
01642 TmplSel::template Bind<T>::type
01643
01644
01645
01646
01647
01648 template <typename T>
01649 struct NoneT {};
01650
01651
01652
01653
01654
01655
01656
01657
01658
01659 struct Templates0 {};
01660
01661
01662
01663 template <GTEST_TEMPLATE_ T1>
01664 struct Templates1 {
01665 typedef TemplateSel<T1> Head;
01666 typedef Templates0 Tail;
01667 };
01668 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
01669 struct Templates2 {
01670 typedef TemplateSel<T1> Head;
01671 typedef Templates1<T2> Tail;
01672 };
01673
01674 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
01675 struct Templates3 {
01676 typedef TemplateSel<T1> Head;
01677 typedef Templates2<T2, T3> Tail;
01678 };
01679
01680 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01681 GTEST_TEMPLATE_ T4>
01682 struct Templates4 {
01683 typedef TemplateSel<T1> Head;
01684 typedef Templates3<T2, T3, T4> Tail;
01685 };
01686
01687 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01688 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
01689 struct Templates5 {
01690 typedef TemplateSel<T1> Head;
01691 typedef Templates4<T2, T3, T4, T5> Tail;
01692 };
01693
01694 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01695 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
01696 struct Templates6 {
01697 typedef TemplateSel<T1> Head;
01698 typedef Templates5<T2, T3, T4, T5, T6> Tail;
01699 };
01700
01701 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01702 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01703 GTEST_TEMPLATE_ T7>
01704 struct Templates7 {
01705 typedef TemplateSel<T1> Head;
01706 typedef Templates6<T2, T3, T4, T5, T6, T7> Tail;
01707 };
01708
01709 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01710 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01711 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
01712 struct Templates8 {
01713 typedef TemplateSel<T1> Head;
01714 typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail;
01715 };
01716
01717 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01718 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01719 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
01720 struct Templates9 {
01721 typedef TemplateSel<T1> Head;
01722 typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
01723 };
01724
01725 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01726 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01727 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01728 GTEST_TEMPLATE_ T10>
01729 struct Templates10 {
01730 typedef TemplateSel<T1> Head;
01731 typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
01732 };
01733
01734 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01735 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01736 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01737 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
01738 struct Templates11 {
01739 typedef TemplateSel<T1> Head;
01740 typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
01741 };
01742
01743 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01744 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01745 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01746 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
01747 struct Templates12 {
01748 typedef TemplateSel<T1> Head;
01749 typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
01750 };
01751
01752 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01753 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01754 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01755 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01756 GTEST_TEMPLATE_ T13>
01757 struct Templates13 {
01758 typedef TemplateSel<T1> Head;
01759 typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
01760 };
01761
01762 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01763 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01764 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01765 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01766 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
01767 struct Templates14 {
01768 typedef TemplateSel<T1> Head;
01769 typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
01770 T14> Tail;
01771 };
01772
01773 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01774 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01775 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01776 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01777 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
01778 struct Templates15 {
01779 typedef TemplateSel<T1> Head;
01780 typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01781 T15> Tail;
01782 };
01783
01784 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01785 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01786 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01787 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01788 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01789 GTEST_TEMPLATE_ T16>
01790 struct Templates16 {
01791 typedef TemplateSel<T1> Head;
01792 typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01793 T15, T16> Tail;
01794 };
01795
01796 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01797 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01798 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01799 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01800 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01801 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
01802 struct Templates17 {
01803 typedef TemplateSel<T1> Head;
01804 typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01805 T15, T16, T17> Tail;
01806 };
01807
01808 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01809 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01810 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01811 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01812 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01813 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
01814 struct Templates18 {
01815 typedef TemplateSel<T1> Head;
01816 typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01817 T15, T16, T17, T18> Tail;
01818 };
01819
01820 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01821 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01822 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01823 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01824 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01825 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01826 GTEST_TEMPLATE_ T19>
01827 struct Templates19 {
01828 typedef TemplateSel<T1> Head;
01829 typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01830 T15, T16, T17, T18, T19> Tail;
01831 };
01832
01833 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01834 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01835 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01836 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01837 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01838 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01839 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
01840 struct Templates20 {
01841 typedef TemplateSel<T1> Head;
01842 typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01843 T15, T16, T17, T18, T19, T20> Tail;
01844 };
01845
01846 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01847 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01848 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01849 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01850 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01851 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01852 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
01853 struct Templates21 {
01854 typedef TemplateSel<T1> Head;
01855 typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01856 T15, T16, T17, T18, T19, T20, T21> Tail;
01857 };
01858
01859 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01860 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01861 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01862 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01863 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01864 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01865 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01866 GTEST_TEMPLATE_ T22>
01867 struct Templates22 {
01868 typedef TemplateSel<T1> Head;
01869 typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01870 T15, T16, T17, T18, T19, T20, T21, T22> Tail;
01871 };
01872
01873 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01874 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01875 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01876 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01877 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01878 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01879 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01880 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
01881 struct Templates23 {
01882 typedef TemplateSel<T1> Head;
01883 typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01884 T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail;
01885 };
01886
01887 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01888 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01889 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01890 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01891 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01892 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01893 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01894 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
01895 struct Templates24 {
01896 typedef TemplateSel<T1> Head;
01897 typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01898 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
01899 };
01900
01901 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01902 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01903 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01904 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01905 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01906 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01907 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01908 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
01909 GTEST_TEMPLATE_ T25>
01910 struct Templates25 {
01911 typedef TemplateSel<T1> Head;
01912 typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01913 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
01914 };
01915
01916 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01917 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01918 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01919 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01920 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01921 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01922 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01923 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
01924 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
01925 struct Templates26 {
01926 typedef TemplateSel<T1> Head;
01927 typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01928 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
01929 };
01930
01931 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01932 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01933 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01934 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01935 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01936 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01937 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01938 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
01939 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
01940 struct Templates27 {
01941 typedef TemplateSel<T1> Head;
01942 typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01943 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
01944 };
01945
01946 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01947 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01948 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01949 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01950 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01951 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01952 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01953 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
01954 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
01955 GTEST_TEMPLATE_ T28>
01956 struct Templates28 {
01957 typedef TemplateSel<T1> Head;
01958 typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01959 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
01960 T28> Tail;
01961 };
01962
01963 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01964 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01965 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01966 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01967 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01968 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01969 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01970 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
01971 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
01972 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
01973 struct Templates29 {
01974 typedef TemplateSel<T1> Head;
01975 typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01976 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
01977 T29> Tail;
01978 };
01979
01980 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01981 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01982 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
01983 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
01984 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
01985 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
01986 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
01987 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
01988 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
01989 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
01990 struct Templates30 {
01991 typedef TemplateSel<T1> Head;
01992 typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
01993 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
01994 T29, T30> Tail;
01995 };
01996
01997 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
01998 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
01999 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02000 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02001 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02002 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02003 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02004 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02005 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02006 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02007 GTEST_TEMPLATE_ T31>
02008 struct Templates31 {
02009 typedef TemplateSel<T1> Head;
02010 typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02011 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02012 T29, T30, T31> Tail;
02013 };
02014
02015 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02016 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02017 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02018 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02019 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02020 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02021 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02022 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02023 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02024 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02025 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
02026 struct Templates32 {
02027 typedef TemplateSel<T1> Head;
02028 typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02029 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02030 T29, T30, T31, T32> Tail;
02031 };
02032
02033 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02034 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02035 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02036 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02037 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02038 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02039 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02040 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02041 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02042 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02043 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
02044 struct Templates33 {
02045 typedef TemplateSel<T1> Head;
02046 typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02047 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02048 T29, T30, T31, T32, T33> Tail;
02049 };
02050
02051 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02052 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02053 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02054 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02055 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02056 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02057 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02058 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02059 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02060 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02061 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02062 GTEST_TEMPLATE_ T34>
02063 struct Templates34 {
02064 typedef TemplateSel<T1> Head;
02065 typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02066 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02067 T29, T30, T31, T32, T33, T34> Tail;
02068 };
02069
02070 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02071 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02072 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02073 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02074 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02075 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02076 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02077 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02078 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02079 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02080 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02081 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
02082 struct Templates35 {
02083 typedef TemplateSel<T1> Head;
02084 typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02085 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02086 T29, T30, T31, T32, T33, T34, T35> Tail;
02087 };
02088
02089 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02090 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02091 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02092 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02093 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02094 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02095 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02096 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02097 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02098 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02099 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02100 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
02101 struct Templates36 {
02102 typedef TemplateSel<T1> Head;
02103 typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02104 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02105 T29, T30, T31, T32, T33, T34, T35, T36> Tail;
02106 };
02107
02108 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02109 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02110 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02111 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02112 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02113 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02114 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02115 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02116 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02117 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02118 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02119 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02120 GTEST_TEMPLATE_ T37>
02121 struct Templates37 {
02122 typedef TemplateSel<T1> Head;
02123 typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02124 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02125 T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail;
02126 };
02127
02128 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02129 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02130 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02131 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02132 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02133 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02134 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02135 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02136 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02137 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02138 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02139 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02140 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
02141 struct Templates38 {
02142 typedef TemplateSel<T1> Head;
02143 typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02144 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02145 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
02146 };
02147
02148 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02149 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02150 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02151 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02152 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02153 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02154 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02155 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02156 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02157 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02158 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02159 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02160 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
02161 struct Templates39 {
02162 typedef TemplateSel<T1> Head;
02163 typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02164 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02165 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
02166 };
02167
02168 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02169 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02170 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02171 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02172 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02173 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02174 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02175 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02176 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02177 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02178 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02179 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02180 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02181 GTEST_TEMPLATE_ T40>
02182 struct Templates40 {
02183 typedef TemplateSel<T1> Head;
02184 typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02185 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02186 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
02187 };
02188
02189 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02190 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02191 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02192 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02193 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02194 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02195 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02196 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02197 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02198 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02199 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02200 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02201 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02202 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
02203 struct Templates41 {
02204 typedef TemplateSel<T1> Head;
02205 typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02206 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02207 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
02208 };
02209
02210 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02211 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02212 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02213 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02214 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02215 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02216 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02217 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02218 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02219 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02220 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02221 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02222 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02223 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
02224 struct Templates42 {
02225 typedef TemplateSel<T1> Head;
02226 typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02227 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02228 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
02229 T42> Tail;
02230 };
02231
02232 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02233 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02234 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02235 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02236 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02237 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02238 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02239 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02240 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02241 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02242 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02243 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02244 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02245 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02246 GTEST_TEMPLATE_ T43>
02247 struct Templates43 {
02248 typedef TemplateSel<T1> Head;
02249 typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02250 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02251 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02252 T43> Tail;
02253 };
02254
02255 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02256 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02257 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02258 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02259 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02260 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02261 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02262 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02263 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02264 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02265 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02266 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02267 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02268 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02269 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
02270 struct Templates44 {
02271 typedef TemplateSel<T1> Head;
02272 typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02273 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02274 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02275 T43, T44> Tail;
02276 };
02277
02278 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02279 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02280 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02281 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02282 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02283 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02284 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02285 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02286 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02287 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02288 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02289 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02290 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02291 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02292 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
02293 struct Templates45 {
02294 typedef TemplateSel<T1> Head;
02295 typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02296 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02297 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02298 T43, T44, T45> Tail;
02299 };
02300
02301 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02302 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02303 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02304 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02305 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02306 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02307 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02308 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02309 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02310 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02311 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02312 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02313 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02314 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02315 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
02316 GTEST_TEMPLATE_ T46>
02317 struct Templates46 {
02318 typedef TemplateSel<T1> Head;
02319 typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02320 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02321 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02322 T43, T44, T45, T46> Tail;
02323 };
02324
02325 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02326 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02327 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02328 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02329 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02330 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02331 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02332 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02333 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02334 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02335 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02336 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02337 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02338 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02339 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
02340 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
02341 struct Templates47 {
02342 typedef TemplateSel<T1> Head;
02343 typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02344 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02345 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02346 T43, T44, T45, T46, T47> Tail;
02347 };
02348
02349 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02350 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02351 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02352 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02353 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02354 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02355 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02356 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02357 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02358 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02359 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02360 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02361 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02362 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02363 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
02364 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
02365 struct Templates48 {
02366 typedef TemplateSel<T1> Head;
02367 typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02368 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02369 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02370 T43, T44, T45, T46, T47, T48> Tail;
02371 };
02372
02373 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02374 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02375 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02376 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02377 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02378 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02379 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02380 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02381 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02382 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02383 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02384 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02385 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02386 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02387 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
02388 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
02389 GTEST_TEMPLATE_ T49>
02390 struct Templates49 {
02391 typedef TemplateSel<T1> Head;
02392 typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02393 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02394 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02395 T43, T44, T45, T46, T47, T48, T49> Tail;
02396 };
02397
02398 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02399 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02400 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02401 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02402 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02403 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02404 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02405 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02406 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02407 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02408 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02409 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
02410 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
02411 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
02412 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
02413 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
02414 GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50>
02415 struct Templates50 {
02416 typedef TemplateSel<T1> Head;
02417 typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02418 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02419 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
02420 T43, T44, T45, T46, T47, T48, T49, T50> Tail;
02421 };
02422
02423
02424
02425
02426
02427
02428
02429
02430
02431
02432
02433
02434
02435
02436
02437 template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT,
02438 GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT,
02439 GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT,
02440 GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT,
02441 GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT,
02442 GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT,
02443 GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT,
02444 GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT,
02445 GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT,
02446 GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT,
02447 GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT,
02448 GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT,
02449 GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT,
02450 GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT,
02451 GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT,
02452 GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT,
02453 GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT,
02454 GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT,
02455 GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT,
02456 GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT,
02457 GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT,
02458 GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT,
02459 GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT,
02460 GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT,
02461 GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT>
02462 struct Templates {
02463 typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02464 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02465 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
02466 T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
02467 };
02468
02469 template <>
02470 struct Templates<NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02471 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02472 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02473 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02474 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02475 NoneT> {
02476 typedef Templates0 type;
02477 };
02478 template <GTEST_TEMPLATE_ T1>
02479 struct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02480 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02481 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02482 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02483 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02484 NoneT> {
02485 typedef Templates1<T1> type;
02486 };
02487 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
02488 struct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02489 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02490 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02491 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02492 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02493 NoneT> {
02494 typedef Templates2<T1, T2> type;
02495 };
02496 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
02497 struct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02498 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02499 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02500 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02501 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02502 typedef Templates3<T1, T2, T3> type;
02503 };
02504 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02505 GTEST_TEMPLATE_ T4>
02506 struct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02507 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02508 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02509 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02510 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02511 typedef Templates4<T1, T2, T3, T4> type;
02512 };
02513 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02514 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
02515 struct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02516 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02517 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02518 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02519 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02520 typedef Templates5<T1, T2, T3, T4, T5> type;
02521 };
02522 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02523 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
02524 struct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT,
02525 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02526 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02527 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02528 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02529 typedef Templates6<T1, T2, T3, T4, T5, T6> type;
02530 };
02531 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02532 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02533 GTEST_TEMPLATE_ T7>
02534 struct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT,
02535 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02536 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02537 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02538 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02539 typedef Templates7<T1, T2, T3, T4, T5, T6, T7> type;
02540 };
02541 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02542 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02543 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
02544 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT,
02545 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02546 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02547 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02548 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02549 typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8> type;
02550 };
02551 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02552 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02553 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
02554 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT,
02555 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02556 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02557 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02558 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02559 typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
02560 };
02561 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02562 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02563 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02564 GTEST_TEMPLATE_ T10>
02565 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT,
02566 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02567 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02568 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02569 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02570 typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
02571 };
02572 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02573 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02574 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02575 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
02576 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT,
02577 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02578 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02579 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02580 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02581 typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
02582 };
02583 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02584 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02585 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02586 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
02587 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT,
02588 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02589 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02590 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02591 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02592 typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type;
02593 };
02594 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02595 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02596 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02597 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02598 GTEST_TEMPLATE_ T13>
02599 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT,
02600 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02601 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02602 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02603 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02604 typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
02605 T13> type;
02606 };
02607 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02608 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02609 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02610 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02611 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
02612 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02613 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02614 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02615 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02616 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02617 typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02618 T14> type;
02619 };
02620 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02621 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02622 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02623 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02624 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
02625 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02626 T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02627 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02628 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02629 NoneT, NoneT, NoneT, NoneT, NoneT> {
02630 typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02631 T14, T15> type;
02632 };
02633 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02634 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02635 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02636 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02637 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02638 GTEST_TEMPLATE_ T16>
02639 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02640 T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02641 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02642 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02643 NoneT, NoneT, NoneT, NoneT, NoneT> {
02644 typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02645 T14, T15, T16> type;
02646 };
02647 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02648 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02649 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02650 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02651 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02652 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
02653 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02654 T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02655 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02656 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02657 NoneT, NoneT, NoneT, NoneT, NoneT> {
02658 typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02659 T14, T15, T16, T17> type;
02660 };
02661 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02662 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02663 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02664 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02665 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02666 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
02667 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02668 T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02669 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02670 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02671 NoneT, NoneT, NoneT, NoneT> {
02672 typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02673 T14, T15, T16, T17, T18> type;
02674 };
02675 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02676 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02677 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02678 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02679 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02680 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02681 GTEST_TEMPLATE_ T19>
02682 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02683 T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02684 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02685 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02686 NoneT, NoneT, NoneT, NoneT> {
02687 typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02688 T14, T15, T16, T17, T18, T19> type;
02689 };
02690 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02691 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02692 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02693 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02694 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02695 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02696 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
02697 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02698 T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02699 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02700 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02701 NoneT, NoneT, NoneT, NoneT> {
02702 typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02703 T14, T15, T16, T17, T18, T19, T20> type;
02704 };
02705 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02706 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02707 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02708 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02709 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02710 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02711 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
02712 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02713 T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT,
02714 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02715 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02716 NoneT, NoneT, NoneT, NoneT> {
02717 typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02718 T14, T15, T16, T17, T18, T19, T20, T21> type;
02719 };
02720 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02721 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02722 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02723 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02724 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02725 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02726 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02727 GTEST_TEMPLATE_ T22>
02728 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02729 T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT,
02730 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02731 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02732 NoneT, NoneT, NoneT> {
02733 typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02734 T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
02735 };
02736 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02737 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02738 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02739 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02740 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02741 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02742 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02743 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
02744 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02745 T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT,
02746 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02747 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02748 NoneT, NoneT, NoneT> {
02749 typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02750 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
02751 };
02752 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02753 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02754 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02755 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02756 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02757 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02758 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02759 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
02760 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02761 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT,
02762 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02763 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02764 NoneT, NoneT, NoneT> {
02765 typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02766 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
02767 };
02768 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02769 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02770 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02771 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02772 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02773 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02774 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02775 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02776 GTEST_TEMPLATE_ T25>
02777 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02778 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, NoneT, NoneT, NoneT,
02779 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02780 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02781 NoneT, NoneT> {
02782 typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02783 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
02784 };
02785 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02786 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02787 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02788 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02789 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02790 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02791 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02792 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02793 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
02794 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02795 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT,
02796 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02797 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02798 NoneT, NoneT> {
02799 typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02800 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> type;
02801 };
02802 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02803 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02804 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02805 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02806 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02807 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02808 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02809 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02810 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
02811 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02812 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT,
02813 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02814 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02815 NoneT, NoneT> {
02816 typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02817 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
02818 T27> type;
02819 };
02820 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02821 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02822 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02823 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02824 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02825 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02826 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02827 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02828 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02829 GTEST_TEMPLATE_ T28>
02830 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02831 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
02832 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02833 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02834 NoneT, NoneT> {
02835 typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02836 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02837 T28> type;
02838 };
02839 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02840 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02841 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02842 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02843 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02844 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02845 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02846 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02847 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02848 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
02849 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02850 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02851 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02852 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02853 NoneT> {
02854 typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02855 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02856 T28, T29> type;
02857 };
02858 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02859 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02860 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02861 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02862 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02863 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02864 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02865 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02866 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02867 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
02868 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02869 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02870 T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02871 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02872 typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02873 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02874 T28, T29, T30> type;
02875 };
02876 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02877 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02878 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02879 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02880 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02881 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02882 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02883 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02884 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02885 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02886 GTEST_TEMPLATE_ T31>
02887 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02888 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02889 T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02890 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02891 typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02892 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02893 T28, T29, T30, T31> type;
02894 };
02895 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02896 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02897 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02898 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02899 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02900 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02901 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02902 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02903 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02904 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02905 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
02906 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02907 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02908 T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02909 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02910 typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02911 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02912 T28, T29, T30, T31, T32> type;
02913 };
02914 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02915 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02916 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02917 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02918 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02919 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02920 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02921 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02922 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02923 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02924 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
02925 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02926 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02927 T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02928 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02929 typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02930 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02931 T28, T29, T30, T31, T32, T33> type;
02932 };
02933 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02934 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02935 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02936 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02937 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02938 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02939 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02940 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02941 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02942 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02943 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02944 GTEST_TEMPLATE_ T34>
02945 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02946 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02947 T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02948 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02949 typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02950 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02951 T28, T29, T30, T31, T32, T33, T34> type;
02952 };
02953 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02954 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02955 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02956 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02957 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02958 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02959 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02960 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02961 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02962 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02963 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02964 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
02965 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02966 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02967 T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
02968 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02969 typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02970 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02971 T28, T29, T30, T31, T32, T33, T34, T35> type;
02972 };
02973 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02974 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02975 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02976 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02977 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02978 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02979 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
02980 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
02981 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
02982 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
02983 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
02984 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
02985 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
02986 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
02987 T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT,
02988 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
02989 typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
02990 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
02991 T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
02992 };
02993 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
02994 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
02995 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
02996 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
02997 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
02998 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
02999 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03000 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03001 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03002 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03003 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03004 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03005 GTEST_TEMPLATE_ T37>
03006 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03007 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03008 T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT,
03009 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03010 typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03011 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03012 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
03013 };
03014 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03015 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03016 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03017 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03018 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03019 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03020 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03021 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03022 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03023 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03024 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03025 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03026 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
03027 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03028 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03029 T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT,
03030 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03031 typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03032 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03033 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
03034 };
03035 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03036 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03037 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03038 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03039 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03040 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03041 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03042 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03043 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03044 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03045 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03046 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03047 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
03048 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03049 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03050 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT,
03051 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03052 typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03053 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03054 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
03055 };
03056 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03057 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03058 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03059 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03060 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03061 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03062 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03063 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03064 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03065 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03066 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03067 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03068 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03069 GTEST_TEMPLATE_ T40>
03070 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03071 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03072 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT,
03073 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03074 typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03075 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03076 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> type;
03077 };
03078 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03079 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03080 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03081 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03082 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03083 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03084 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03085 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03086 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03087 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03088 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03089 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03090 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03091 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
03092 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03093 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03094 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT,
03095 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03096 typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03097 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03098 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
03099 T41> type;
03100 };
03101 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03102 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03103 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03104 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03105 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03106 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03107 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03108 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03109 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03110 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03111 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03112 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03113 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03114 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
03115 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03116 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03117 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT,
03118 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03119 typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03120 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03121 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03122 T42> type;
03123 };
03124 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03125 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03126 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03127 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03128 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03129 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03130 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03131 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03132 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03133 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03134 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03135 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03136 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03137 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
03138 GTEST_TEMPLATE_ T43>
03139 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03140 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03141 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
03142 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03143 typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03144 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03145 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03146 T42, T43> type;
03147 };
03148 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03149 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03150 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03151 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03152 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03153 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03154 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03155 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03156 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03157 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03158 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03159 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03160 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03161 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
03162 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
03163 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03164 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03165 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
03166 NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
03167 typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03168 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03169 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03170 T42, T43, T44> type;
03171 };
03172 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03173 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03174 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03175 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03176 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03177 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03178 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03179 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03180 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03181 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03182 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03183 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03184 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03185 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
03186 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
03187 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03188 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03189 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
03190 T45, NoneT, NoneT, NoneT, NoneT, NoneT> {
03191 typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03192 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03193 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03194 T42, T43, T44, T45> type;
03195 };
03196 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03197 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03198 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03199 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03200 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03201 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03202 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03203 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03204 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03205 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03206 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03207 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03208 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03209 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
03210 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
03211 GTEST_TEMPLATE_ T46>
03212 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03213 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03214 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
03215 T45, T46, NoneT, NoneT, NoneT, NoneT> {
03216 typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03217 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03218 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03219 T42, T43, T44, T45, T46> type;
03220 };
03221 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03222 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03223 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03224 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03225 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03226 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03227 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03228 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03229 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03230 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03231 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03232 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03233 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03234 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
03235 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
03236 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
03237 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03238 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03239 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
03240 T45, T46, T47, NoneT, NoneT, NoneT> {
03241 typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03242 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03243 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03244 T42, T43, T44, T45, T46, T47> type;
03245 };
03246 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03247 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03248 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03249 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03250 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03251 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03252 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03253 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03254 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03255 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03256 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03257 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03258 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03259 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
03260 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
03261 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
03262 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03263 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03264 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
03265 T45, T46, T47, T48, NoneT, NoneT> {
03266 typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03267 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03268 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03269 T42, T43, T44, T45, T46, T47, T48> type;
03270 };
03271 template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
03272 GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
03273 GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
03274 GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
03275 GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
03276 GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
03277 GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
03278 GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
03279 GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
03280 GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
03281 GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
03282 GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
03283 GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
03284 GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
03285 GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
03286 GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
03287 GTEST_TEMPLATE_ T49>
03288 struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
03289 T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
03290 T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
03291 T45, T46, T47, T48, T49, NoneT> {
03292 typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03293 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
03294 T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
03295 T42, T43, T44, T45, T46, T47, T48, T49> type;
03296 };
03297
03298
03299
03300
03301
03302 template <typename T>
03303 struct TypeList { typedef Types1<T> type; };
03304
03305 template <typename T1, typename T2, typename T3, typename T4, typename T5,
03306 typename T6, typename T7, typename T8, typename T9, typename T10,
03307 typename T11, typename T12, typename T13, typename T14, typename T15,
03308 typename T16, typename T17, typename T18, typename T19, typename T20,
03309 typename T21, typename T22, typename T23, typename T24, typename T25,
03310 typename T26, typename T27, typename T28, typename T29, typename T30,
03311 typename T31, typename T32, typename T33, typename T34, typename T35,
03312 typename T36, typename T37, typename T38, typename T39, typename T40,
03313 typename T41, typename T42, typename T43, typename T44, typename T45,
03314 typename T46, typename T47, typename T48, typename T49, typename T50>
03315 struct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
03316 T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
03317 T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
03318 T44, T45, T46, T47, T48, T49, T50> > {
03319 typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
03320 T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
03321 T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
03322 T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>::type type;
03323 };
03324
03325 #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
03326
03327 }
03328 }
03329
03330 #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_