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