rj_schema 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (614) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rj_schema/rapidjson/CHANGELOG.md +158 -0
  3. data/ext/rj_schema/rapidjson/CMakeLists.txt +226 -0
  4. data/ext/rj_schema/rapidjson/CMakeModules/FindGTestSrc.cmake +30 -0
  5. data/ext/rj_schema/rapidjson/RapidJSON.pc.in +7 -0
  6. data/ext/rj_schema/rapidjson/RapidJSONConfig.cmake.in +25 -0
  7. data/ext/rj_schema/rapidjson/RapidJSONConfigVersion.cmake.in +10 -0
  8. data/ext/rj_schema/rapidjson/appveyor.yml +54 -0
  9. data/ext/rj_schema/rapidjson/bin/data/abcde.txt +1 -0
  10. data/ext/rj_schema/rapidjson/bin/data/glossary.json +22 -0
  11. data/ext/rj_schema/rapidjson/bin/data/menu.json +27 -0
  12. data/ext/rj_schema/rapidjson/bin/data/readme.txt +1 -0
  13. data/ext/rj_schema/rapidjson/bin/data/sample.json +3315 -0
  14. data/ext/rj_schema/rapidjson/bin/data/webapp.json +88 -0
  15. data/ext/rj_schema/rapidjson/bin/data/widget.json +26 -0
  16. data/ext/rj_schema/rapidjson/bin/draft-04/schema +150 -0
  17. data/ext/rj_schema/rapidjson/bin/encodings/utf16be.json +0 -0
  18. data/ext/rj_schema/rapidjson/bin/encodings/utf16bebom.json +0 -0
  19. data/ext/rj_schema/rapidjson/bin/encodings/utf16le.json +0 -0
  20. data/ext/rj_schema/rapidjson/bin/encodings/utf16lebom.json +0 -0
  21. data/ext/rj_schema/rapidjson/bin/encodings/utf32be.json +0 -0
  22. data/ext/rj_schema/rapidjson/bin/encodings/utf32bebom.json +0 -0
  23. data/ext/rj_schema/rapidjson/bin/encodings/utf32le.json +0 -0
  24. data/ext/rj_schema/rapidjson/bin/encodings/utf32lebom.json +0 -0
  25. data/ext/rj_schema/rapidjson/bin/encodings/utf8.json +7 -0
  26. data/ext/rj_schema/rapidjson/bin/encodings/utf8bom.json +7 -0
  27. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail1.json +1 -0
  28. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail10.json +1 -0
  29. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail11.json +1 -0
  30. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail12.json +1 -0
  31. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail13.json +1 -0
  32. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail14.json +1 -0
  33. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail15.json +1 -0
  34. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail16.json +1 -0
  35. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail17.json +1 -0
  36. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail18.json +1 -0
  37. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail19.json +1 -0
  38. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail2.json +1 -0
  39. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail20.json +1 -0
  40. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail21.json +1 -0
  41. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail22.json +1 -0
  42. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail23.json +1 -0
  43. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail24.json +1 -0
  44. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail25.json +1 -0
  45. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail26.json +1 -0
  46. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail27.json +2 -0
  47. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail28.json +2 -0
  48. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail29.json +1 -0
  49. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail3.json +1 -0
  50. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail30.json +1 -0
  51. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail31.json +1 -0
  52. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail32.json +1 -0
  53. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail33.json +1 -0
  54. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail4.json +1 -0
  55. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail5.json +1 -0
  56. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail6.json +1 -0
  57. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail7.json +1 -0
  58. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail8.json +1 -0
  59. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail9.json +1 -0
  60. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass1.json +58 -0
  61. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass2.json +1 -0
  62. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass3.json +6 -0
  63. data/ext/rj_schema/rapidjson/bin/jsonchecker/readme.txt +3 -0
  64. data/ext/rj_schema/rapidjson/bin/jsonschema/LICENSE +19 -0
  65. data/ext/rj_schema/rapidjson/bin/jsonschema/README.md +148 -0
  66. data/ext/rj_schema/rapidjson/bin/jsonschema/bin/jsonschema_suite +283 -0
  67. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json +3 -0
  68. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/integer.json +3 -0
  69. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/subSchemas.json +8 -0
  70. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json +82 -0
  71. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json +88 -0
  72. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/default.json +49 -0
  73. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/dependencies.json +108 -0
  74. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/disallow.json +80 -0
  75. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json +60 -0
  76. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/enum.json +71 -0
  77. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/extends.json +94 -0
  78. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/items.json +46 -0
  79. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxItems.json +28 -0
  80. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxLength.json +33 -0
  81. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maximum.json +42 -0
  82. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minItems.json +28 -0
  83. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minLength.json +33 -0
  84. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minimum.json +42 -0
  85. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json +107 -0
  86. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/format.json +222 -0
  87. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json +18 -0
  88. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json +15 -0
  89. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/pattern.json +34 -0
  90. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json +110 -0
  91. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/properties.json +92 -0
  92. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/ref.json +159 -0
  93. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/refRemote.json +74 -0
  94. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/required.json +53 -0
  95. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/type.json +474 -0
  96. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json +79 -0
  97. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json +82 -0
  98. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json +88 -0
  99. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/allOf.json +112 -0
  100. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/anyOf.json +68 -0
  101. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/default.json +49 -0
  102. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/definitions.json +32 -0
  103. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/dependencies.json +113 -0
  104. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/enum.json +72 -0
  105. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/items.json +46 -0
  106. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxItems.json +28 -0
  107. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxLength.json +33 -0
  108. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json +28 -0
  109. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maximum.json +42 -0
  110. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minItems.json +28 -0
  111. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minLength.json +33 -0
  112. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minProperties.json +28 -0
  113. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minimum.json +42 -0
  114. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json +60 -0
  115. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/not.json +96 -0
  116. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/oneOf.json +68 -0
  117. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json +107 -0
  118. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/format.json +148 -0
  119. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json +15 -0
  120. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/pattern.json +34 -0
  121. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json +110 -0
  122. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/properties.json +92 -0
  123. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/ref.json +159 -0
  124. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/refRemote.json +74 -0
  125. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/required.json +39 -0
  126. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/type.json +330 -0
  127. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json +79 -0
  128. data/ext/rj_schema/rapidjson/bin/jsonschema/tox.ini +8 -0
  129. data/ext/rj_schema/rapidjson/bin/types/booleans.json +102 -0
  130. data/ext/rj_schema/rapidjson/bin/types/floats.json +102 -0
  131. data/ext/rj_schema/rapidjson/bin/types/guids.json +102 -0
  132. data/ext/rj_schema/rapidjson/bin/types/integers.json +102 -0
  133. data/ext/rj_schema/rapidjson/bin/types/mixed.json +592 -0
  134. data/ext/rj_schema/rapidjson/bin/types/nulls.json +102 -0
  135. data/ext/rj_schema/rapidjson/bin/types/paragraphs.json +102 -0
  136. data/ext/rj_schema/rapidjson/bin/types/readme.txt +1 -0
  137. data/ext/rj_schema/rapidjson/contrib/natvis/LICENSE +45 -0
  138. data/ext/rj_schema/rapidjson/contrib/natvis/README.md +7 -0
  139. data/ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis +38 -0
  140. data/ext/rj_schema/rapidjson/doc/CMakeLists.txt +27 -0
  141. data/ext/rj_schema/rapidjson/doc/Doxyfile.in +2369 -0
  142. data/ext/rj_schema/rapidjson/doc/Doxyfile.zh-cn.in +2369 -0
  143. data/ext/rj_schema/rapidjson/doc/diagram/architecture.dot +50 -0
  144. data/ext/rj_schema/rapidjson/doc/diagram/architecture.png +0 -0
  145. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.dot +65 -0
  146. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.png +0 -0
  147. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +62 -0
  148. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  149. data/ext/rj_schema/rapidjson/doc/diagram/makefile +8 -0
  150. data/ext/rj_schema/rapidjson/doc/diagram/move1.dot +47 -0
  151. data/ext/rj_schema/rapidjson/doc/diagram/move1.png +0 -0
  152. data/ext/rj_schema/rapidjson/doc/diagram/move2.dot +62 -0
  153. data/ext/rj_schema/rapidjson/doc/diagram/move2.png +0 -0
  154. data/ext/rj_schema/rapidjson/doc/diagram/move3.dot +60 -0
  155. data/ext/rj_schema/rapidjson/doc/diagram/move3.png +0 -0
  156. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.dot +56 -0
  157. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.png +0 -0
  158. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.dot +54 -0
  159. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.png +0 -0
  160. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.dot +58 -0
  161. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.png +0 -0
  162. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.dot +73 -0
  163. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.png +0 -0
  164. data/ext/rj_schema/rapidjson/doc/dom.md +281 -0
  165. data/ext/rj_schema/rapidjson/doc/dom.zh-cn.md +285 -0
  166. data/ext/rj_schema/rapidjson/doc/encoding.md +146 -0
  167. data/ext/rj_schema/rapidjson/doc/encoding.zh-cn.md +152 -0
  168. data/ext/rj_schema/rapidjson/doc/faq.md +289 -0
  169. data/ext/rj_schema/rapidjson/doc/faq.zh-cn.md +290 -0
  170. data/ext/rj_schema/rapidjson/doc/features.md +104 -0
  171. data/ext/rj_schema/rapidjson/doc/features.zh-cn.md +103 -0
  172. data/ext/rj_schema/rapidjson/doc/internals.md +368 -0
  173. data/ext/rj_schema/rapidjson/doc/internals.zh-cn.md +363 -0
  174. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.png +0 -0
  175. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.svg +119 -0
  176. data/ext/rj_schema/rapidjson/doc/misc/DoxygenLayout.xml +194 -0
  177. data/ext/rj_schema/rapidjson/doc/misc/doxygenextra.css +274 -0
  178. data/ext/rj_schema/rapidjson/doc/misc/footer.html +11 -0
  179. data/ext/rj_schema/rapidjson/doc/misc/header.html +24 -0
  180. data/ext/rj_schema/rapidjson/doc/npm.md +31 -0
  181. data/ext/rj_schema/rapidjson/doc/performance.md +26 -0
  182. data/ext/rj_schema/rapidjson/doc/performance.zh-cn.md +26 -0
  183. data/ext/rj_schema/rapidjson/doc/pointer.md +234 -0
  184. data/ext/rj_schema/rapidjson/doc/pointer.zh-cn.md +234 -0
  185. data/ext/rj_schema/rapidjson/doc/sax.md +509 -0
  186. data/ext/rj_schema/rapidjson/doc/sax.zh-cn.md +487 -0
  187. data/ext/rj_schema/rapidjson/doc/schema.md +505 -0
  188. data/ext/rj_schema/rapidjson/doc/schema.zh-cn.md +237 -0
  189. data/ext/rj_schema/rapidjson/doc/stream.md +429 -0
  190. data/ext/rj_schema/rapidjson/doc/stream.zh-cn.md +429 -0
  191. data/ext/rj_schema/rapidjson/doc/tutorial.md +536 -0
  192. data/ext/rj_schema/rapidjson/doc/tutorial.zh-cn.md +535 -0
  193. data/ext/rj_schema/rapidjson/docker/debian/Dockerfile +8 -0
  194. data/ext/rj_schema/rapidjson/example/CMakeLists.txt +46 -0
  195. data/ext/rj_schema/rapidjson/example/archiver/archiver.cpp +292 -0
  196. data/ext/rj_schema/rapidjson/example/archiver/archiver.h +145 -0
  197. data/ext/rj_schema/rapidjson/example/archiver/archivertest.cpp +287 -0
  198. data/ext/rj_schema/rapidjson/example/capitalize/capitalize.cpp +67 -0
  199. data/ext/rj_schema/rapidjson/example/condense/condense.cpp +32 -0
  200. data/ext/rj_schema/rapidjson/example/filterkey/filterkey.cpp +135 -0
  201. data/ext/rj_schema/rapidjson/example/filterkeydom/filterkeydom.cpp +170 -0
  202. data/ext/rj_schema/rapidjson/example/jsonx/jsonx.cpp +207 -0
  203. data/ext/rj_schema/rapidjson/example/lookaheadparser/lookaheadparser.cpp +350 -0
  204. data/ext/rj_schema/rapidjson/example/messagereader/messagereader.cpp +105 -0
  205. data/ext/rj_schema/rapidjson/example/parsebyparts/parsebyparts.cpp +176 -0
  206. data/ext/rj_schema/rapidjson/example/pretty/pretty.cpp +30 -0
  207. data/ext/rj_schema/rapidjson/example/prettyauto/prettyauto.cpp +56 -0
  208. data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +78 -0
  209. data/ext/rj_schema/rapidjson/example/serialize/serialize.cpp +173 -0
  210. data/ext/rj_schema/rapidjson/example/simpledom/simpledom.cpp +29 -0
  211. data/ext/rj_schema/rapidjson/example/simplepullreader/simplepullreader.cpp +53 -0
  212. data/ext/rj_schema/rapidjson/example/simplereader/simplereader.cpp +42 -0
  213. data/ext/rj_schema/rapidjson/example/simplewriter/simplewriter.cpp +36 -0
  214. data/ext/rj_schema/rapidjson/example/sortkeys/sortkeys.cpp +62 -0
  215. data/ext/rj_schema/rapidjson/example/tutorial/tutorial.cpp +151 -0
  216. data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +284 -0
  217. data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +78 -0
  218. data/ext/rj_schema/rapidjson/include/rapidjson/document.h +2732 -0
  219. data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +299 -0
  220. data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +716 -0
  221. data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +74 -0
  222. data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +161 -0
  223. data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +99 -0
  224. data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +104 -0
  225. data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +151 -0
  226. data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +290 -0
  227. data/ext/rj_schema/rapidjson/include/rapidjson/internal/clzll.h +71 -0
  228. data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +257 -0
  229. data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +245 -0
  230. data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +78 -0
  231. data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +308 -0
  232. data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +186 -0
  233. data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +55 -0
  234. data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +739 -0
  235. data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +232 -0
  236. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +69 -0
  237. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +290 -0
  238. data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +46 -0
  239. data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +128 -0
  240. data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +70 -0
  241. data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +71 -0
  242. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/inttypes.h +316 -0
  243. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/stdint.h +300 -0
  244. data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +81 -0
  245. data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +1415 -0
  246. data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +277 -0
  247. data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +676 -0
  248. data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +2236 -0
  249. data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +2496 -0
  250. data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +223 -0
  251. data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +121 -0
  252. data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +710 -0
  253. data/ext/rj_schema/rapidjson/include_dirs.js +2 -0
  254. data/ext/rj_schema/rapidjson/library.json +15 -0
  255. data/ext/rj_schema/rapidjson/license.txt +57 -0
  256. data/ext/rj_schema/rapidjson/package.json +24 -0
  257. data/ext/rj_schema/rapidjson/rapidjson.autopkg +77 -0
  258. data/ext/rj_schema/rapidjson/readme.md +210 -0
  259. data/ext/rj_schema/rapidjson/readme.zh-cn.md +152 -0
  260. data/ext/rj_schema/rapidjson/test/CMakeLists.txt +20 -0
  261. data/ext/rj_schema/rapidjson/test/perftest/CMakeLists.txt +28 -0
  262. data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +974 -0
  263. data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +24 -0
  264. data/ext/rj_schema/rapidjson/test/perftest/perftest.h +185 -0
  265. data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +166 -0
  266. data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +546 -0
  267. data/ext/rj_schema/rapidjson/test/perftest/schematest.cpp +223 -0
  268. data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +92 -0
  269. data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +100 -0
  270. data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +138 -0
  271. data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +115 -0
  272. data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +672 -0
  273. data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +98 -0
  274. data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +313 -0
  275. data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +451 -0
  276. data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +155 -0
  277. data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +230 -0
  278. data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +181 -0
  279. data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +160 -0
  280. data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +143 -0
  281. data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +70 -0
  282. data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +92 -0
  283. data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +1638 -0
  284. data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +373 -0
  285. data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +2225 -0
  286. data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +639 -0
  287. data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +2072 -0
  288. data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +219 -0
  289. data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +30 -0
  290. data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +192 -0
  291. data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +132 -0
  292. data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +51 -0
  293. data/ext/rj_schema/rapidjson/test/unittest/unittest.h +143 -0
  294. data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +1851 -0
  295. data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +598 -0
  296. data/ext/rj_schema/rapidjson/test/valgrind.supp +17 -0
  297. data/ext/rj_schema/rapidjson/thirdparty/gtest/BUILD.bazel +175 -0
  298. data/ext/rj_schema/rapidjson/thirdparty/gtest/CMakeLists.txt +33 -0
  299. data/ext/rj_schema/rapidjson/thirdparty/gtest/CONTRIBUTING.md +160 -0
  300. data/ext/rj_schema/rapidjson/thirdparty/gtest/LICENSE +28 -0
  301. data/ext/rj_schema/rapidjson/thirdparty/gtest/Makefile.am +14 -0
  302. data/ext/rj_schema/rapidjson/thirdparty/gtest/README.md +122 -0
  303. data/ext/rj_schema/rapidjson/thirdparty/gtest/WORKSPACE +8 -0
  304. data/ext/rj_schema/rapidjson/thirdparty/gtest/appveyor.yml +104 -0
  305. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/build-linux-autotools.sh +44 -0
  306. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/build-linux-bazel.sh +36 -0
  307. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/env-linux.sh +41 -0
  308. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/env-osx.sh +40 -0
  309. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/get-nprocessors.sh +48 -0
  310. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/install-linux.sh +49 -0
  311. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/install-osx.sh +39 -0
  312. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/log-config.sh +51 -0
  313. data/ext/rj_schema/rapidjson/thirdparty/gtest/ci/travis.sh +44 -0
  314. data/ext/rj_schema/rapidjson/thirdparty/gtest/configure.ac +16 -0
  315. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CHANGES +126 -0
  316. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +242 -0
  317. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +40 -0
  318. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/LICENSE +28 -0
  319. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/Makefile.am +224 -0
  320. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/README.md +344 -0
  321. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/cmake/gmock.pc.in +9 -0
  322. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/cmake/gmock_main.pc.in +9 -0
  323. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/configure.ac +146 -0
  324. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +564 -0
  325. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +3660 -0
  326. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +280 -0
  327. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +15 -0
  328. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +447 -0
  329. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +627 -0
  330. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +19 -0
  331. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +1262 -0
  332. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +147 -0
  333. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +2571 -0
  334. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +833 -0
  335. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +1379 -0
  336. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +347 -0
  337. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +2258 -0
  338. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +675 -0
  339. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +458 -0
  340. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +178 -0
  341. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +5255 -0
  342. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +246 -0
  343. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +91 -0
  344. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +1918 -0
  345. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +95 -0
  346. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +8 -0
  347. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +10 -0
  348. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +38 -0
  349. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +46 -0
  350. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +286 -0
  351. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +136 -0
  352. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +574 -0
  353. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +87 -0
  354. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/make/Makefile +101 -0
  355. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +32 -0
  356. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +191 -0
  357. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +15 -0
  358. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +187 -0
  359. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +201 -0
  360. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +46 -0
  361. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +145 -0
  362. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +19 -0
  363. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +151 -0
  364. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +176 -0
  365. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +46 -0
  366. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +145 -0
  367. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +19 -0
  368. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +151 -0
  369. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +176 -0
  370. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +240 -0
  371. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +203 -0
  372. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +34 -0
  373. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +115 -0
  374. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  375. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +1733 -0
  376. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +227 -0
  377. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +448 -0
  378. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +59 -0
  379. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +287 -0
  380. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +41 -0
  381. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +31 -0
  382. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +303 -0
  383. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +640 -0
  384. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +1387 -0
  385. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +78 -0
  386. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +47 -0
  387. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +156 -0
  388. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +204 -0
  389. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +573 -0
  390. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +883 -0
  391. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +205 -0
  392. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +54 -0
  393. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/BUILD.bazel +123 -0
  394. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +1575 -0
  395. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +428 -0
  396. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +1230 -0
  397. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +647 -0
  398. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +129 -0
  399. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +1341 -0
  400. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +718 -0
  401. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +6767 -0
  402. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +710 -0
  403. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +511 -0
  404. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +43 -0
  405. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +2771 -0
  406. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +51 -0
  407. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +81 -0
  408. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +108 -0
  409. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +100 -0
  410. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +40 -0
  411. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +40 -0
  412. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +691 -0
  413. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +183 -0
  414. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +310 -0
  415. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +317 -0
  416. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +323 -0
  417. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +262 -0
  418. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +110 -0
  419. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CHANGES +157 -0
  420. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +312 -0
  421. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +37 -0
  422. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/LICENSE +28 -0
  423. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/Makefile.am +339 -0
  424. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/README.md +341 -0
  425. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/gtest.pc.in +9 -0
  426. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/gtest_main.pc.in +10 -0
  427. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +280 -0
  428. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +138 -0
  429. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +54 -0
  430. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +38 -0
  431. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +40 -0
  432. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +82 -0
  433. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +88 -0
  434. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/configure.ac +68 -0
  435. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Pkgconfig.md +146 -0
  436. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +177 -0
  437. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +93 -0
  438. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/advanced.md +2416 -0
  439. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/faq.md +1092 -0
  440. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/primer.md +536 -0
  441. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/samples.md +14 -0
  442. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +342 -0
  443. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +249 -0
  444. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +1438 -0
  445. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +501 -0
  446. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +1082 -0
  447. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +231 -0
  448. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +179 -0
  449. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +264 -0
  450. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +2332 -0
  451. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +357 -0
  452. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +61 -0
  453. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +70 -0
  454. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  455. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +45 -0
  456. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +275 -0
  457. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +205 -0
  458. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +1277 -0
  459. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  460. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +5139 -0
  461. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +279 -0
  462. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +723 -0
  463. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +100 -0
  464. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +2687 -0
  465. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +167 -0
  466. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  467. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  468. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +3347 -0
  469. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +313 -0
  470. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +363 -0
  471. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +74 -0
  472. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/make/Makefile +82 -0
  473. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.sln +55 -0
  474. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj +149 -0
  475. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj.filters +18 -0
  476. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.sln +55 -0
  477. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj +149 -0
  478. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj.filters +18 -0
  479. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj +154 -0
  480. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj.filters +18 -0
  481. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj +162 -0
  482. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj.filters +18 -0
  483. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj +199 -0
  484. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj.filters +26 -0
  485. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj +191 -0
  486. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj.filters +26 -0
  487. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj +188 -0
  488. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj.filters +18 -0
  489. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj +180 -0
  490. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj.filters +18 -0
  491. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +127 -0
  492. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +68 -0
  493. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +43 -0
  494. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +140 -0
  495. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +154 -0
  496. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +56 -0
  497. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +85 -0
  498. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +110 -0
  499. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +172 -0
  500. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +152 -0
  501. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +46 -0
  502. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +53 -0
  503. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +49 -0
  504. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +199 -0
  505. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +225 -0
  506. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +118 -0
  507. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +174 -0
  508. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +157 -0
  509. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/common.py +83 -0
  510. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +253 -0
  511. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +730 -0
  512. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +274 -0
  513. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +855 -0
  514. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +158 -0
  515. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/test/Makefile +59 -0
  516. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +1387 -0
  517. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +78 -0
  518. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +48 -0
  519. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +1536 -0
  520. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +385 -0
  521. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +1175 -0
  522. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +1277 -0
  523. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +458 -0
  524. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +102 -0
  525. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +119 -0
  526. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +5846 -0
  527. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +38 -0
  528. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/BUILD.bazel +396 -0
  529. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +93 -0
  530. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +1424 -0
  531. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +652 -0
  532. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +154 -0
  533. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +311 -0
  534. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +159 -0
  535. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +213 -0
  536. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +61 -0
  537. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +1110 -0
  538. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +53 -0
  539. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +1303 -0
  540. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +1737 -0
  541. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +208 -0
  542. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +320 -0
  543. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +45 -0
  544. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +380 -0
  545. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +66 -0
  546. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +341 -0
  547. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +47 -0
  548. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_assert_by_exception_test.cc +119 -0
  549. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +210 -0
  550. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +87 -0
  551. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +235 -0
  552. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +311 -0
  553. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +129 -0
  554. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +63 -0
  555. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +119 -0
  556. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +124 -0
  557. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +189 -0
  558. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +638 -0
  559. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +138 -0
  560. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +172 -0
  561. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +46 -0
  562. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_outfiles_test.py +162 -0
  563. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_output_unittest.py +611 -0
  564. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_json_test_utils.py +60 -0
  565. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +207 -0
  566. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +157 -0
  567. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +45 -0
  568. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +56 -0
  569. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +344 -0
  570. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +1067 -0
  571. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +781 -0
  572. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
  573. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +127 -0
  574. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +57 -0
  575. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +236 -0
  576. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +325 -0
  577. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +103 -0
  578. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +57 -0
  579. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +250 -0
  580. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +318 -0
  581. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test.py +65 -0
  582. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test_.cc +44 -0
  583. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +92 -0
  584. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +171 -0
  585. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +72 -0
  586. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +69 -0
  587. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +43 -0
  588. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +7797 -0
  589. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +48 -0
  590. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +48 -0
  591. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +140 -0
  592. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +378 -0
  593. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +179 -0
  594. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +196 -0
  595. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.cc +36 -0
  596. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.h +55 -0
  597. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +30 -0
  598. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +17 -0
  599. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +41 -0
  600. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +32 -0
  601. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +18 -0
  602. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +8 -0
  603. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +30 -0
  604. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +28 -0
  605. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +457 -0
  606. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +62 -0
  607. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +63 -0
  608. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +59 -0
  609. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +68 -0
  610. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +65 -0
  611. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +100 -0
  612. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +1182 -0
  613. data/ext/rj_schema/rapidjson/travis-doxygen.sh +128 -0
  614. metadata +613 -1
@@ -0,0 +1,347 @@
1
+ $$ -*- mode: c++; -*-
2
+ $var n = 10 $$ Maximum number of tuple fields we want to support.
3
+ $$ This meta comment fixes auto-indentation in Emacs. }}
4
+ // Copyright 2009 Google Inc.
5
+ // All Rights Reserved.
6
+ //
7
+ // Redistribution and use in source and binary forms, with or without
8
+ // modification, are permitted provided that the following conditions are
9
+ // met:
10
+ //
11
+ // * Redistributions of source code must retain the above copyright
12
+ // notice, this list of conditions and the following disclaimer.
13
+ // * Redistributions in binary form must reproduce the above
14
+ // copyright notice, this list of conditions and the following disclaimer
15
+ // in the documentation and/or other materials provided with the
16
+ // distribution.
17
+ // * Neither the name of Google Inc. nor the names of its
18
+ // contributors may be used to endorse or promote products derived from
19
+ // this software without specific prior written permission.
20
+ //
21
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
+ //
33
+ // Author: wan@google.com (Zhanyong Wan)
34
+
35
+ // Implements a subset of TR1 tuple needed by Google Test and Google Mock.
36
+
37
+ #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
38
+ #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
39
+
40
+ #include <utility> // For ::std::pair.
41
+
42
+ // The compiler used in Symbian has a bug that prevents us from declaring the
43
+ // tuple template as a friend (it complains that tuple is redefined). This
44
+ // hack bypasses the bug by declaring the members that should otherwise be
45
+ // private as public.
46
+ // Sun Studio versions < 12 also have the above bug.
47
+ #if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590)
48
+ # define GTEST_DECLARE_TUPLE_AS_FRIEND_ public:
49
+ #else
50
+ # define GTEST_DECLARE_TUPLE_AS_FRIEND_ \
51
+ template <GTEST_$(n)_TYPENAMES_(U)> friend class tuple; \
52
+ private:
53
+ #endif
54
+
55
+ // Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that conflict
56
+ // with our own definitions. Therefore using our own tuple does not work on
57
+ // those compilers.
58
+ #if defined(_MSC_VER) && _MSC_VER >= 1600 /* 1600 is Visual Studio 2010 */
59
+ # error "gtest's tuple doesn't compile on Visual Studio 2010 or later. \
60
+ GTEST_USE_OWN_TR1_TUPLE must be set to 0 on those compilers."
61
+ #endif
62
+
63
+
64
+ $range i 0..n-1
65
+ $range j 0..n
66
+ $range k 1..n
67
+ // GTEST_n_TUPLE_(T) is the type of an n-tuple.
68
+ #define GTEST_0_TUPLE_(T) tuple<>
69
+
70
+ $for k [[
71
+ $range m 0..k-1
72
+ $range m2 k..n-1
73
+ #define GTEST_$(k)_TUPLE_(T) tuple<$for m, [[T##$m]]$for m2 [[, void]]>
74
+
75
+ ]]
76
+
77
+ // GTEST_n_TYPENAMES_(T) declares a list of n typenames.
78
+
79
+ $for j [[
80
+ $range m 0..j-1
81
+ #define GTEST_$(j)_TYPENAMES_(T) $for m, [[typename T##$m]]
82
+
83
+
84
+ ]]
85
+
86
+ // In theory, defining stuff in the ::std namespace is undefined
87
+ // behavior. We can do this as we are playing the role of a standard
88
+ // library vendor.
89
+ namespace std {
90
+ namespace tr1 {
91
+
92
+ template <$for i, [[typename T$i = void]]>
93
+ class tuple;
94
+
95
+ // Anything in namespace gtest_internal is Google Test's INTERNAL
96
+ // IMPLEMENTATION DETAIL and MUST NOT BE USED DIRECTLY in user code.
97
+ namespace gtest_internal {
98
+
99
+ // ByRef<T>::type is T if T is a reference; otherwise it's const T&.
100
+ template <typename T>
101
+ struct ByRef { typedef const T& type; }; // NOLINT
102
+ template <typename T>
103
+ struct ByRef<T&> { typedef T& type; }; // NOLINT
104
+
105
+ // A handy wrapper for ByRef.
106
+ #define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef<T>::type
107
+
108
+ // AddRef<T>::type is T if T is a reference; otherwise it's T&. This
109
+ // is the same as tr1::add_reference<T>::type.
110
+ template <typename T>
111
+ struct AddRef { typedef T& type; }; // NOLINT
112
+ template <typename T>
113
+ struct AddRef<T&> { typedef T& type; }; // NOLINT
114
+
115
+ // A handy wrapper for AddRef.
116
+ #define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef<T>::type
117
+
118
+ // A helper for implementing get<k>().
119
+ template <int k> class Get;
120
+
121
+ // A helper for implementing tuple_element<k, T>. kIndexValid is true
122
+ // iff k < the number of fields in tuple type T.
123
+ template <bool kIndexValid, int kIndex, class Tuple>
124
+ struct TupleElement;
125
+
126
+
127
+ $for i [[
128
+ template <GTEST_$(n)_TYPENAMES_(T)>
129
+ struct TupleElement<true, $i, GTEST_$(n)_TUPLE_(T) > {
130
+ typedef T$i type;
131
+ };
132
+
133
+
134
+ ]]
135
+ } // namespace gtest_internal
136
+
137
+ template <>
138
+ class tuple<> {
139
+ public:
140
+ tuple() {}
141
+ tuple(const tuple& /* t */) {}
142
+ tuple& operator=(const tuple& /* t */) { return *this; }
143
+ };
144
+
145
+
146
+ $for k [[
147
+ $range m 0..k-1
148
+ template <GTEST_$(k)_TYPENAMES_(T)>
149
+ class $if k < n [[GTEST_$(k)_TUPLE_(T)]] $else [[tuple]] {
150
+ public:
151
+ template <int k> friend class gtest_internal::Get;
152
+
153
+ tuple() : $for m, [[f$(m)_()]] {}
154
+
155
+ explicit tuple($for m, [[GTEST_BY_REF_(T$m) f$m]]) : [[]]
156
+ $for m, [[f$(m)_(f$m)]] {}
157
+
158
+ tuple(const tuple& t) : $for m, [[f$(m)_(t.f$(m)_)]] {}
159
+
160
+ template <GTEST_$(k)_TYPENAMES_(U)>
161
+ tuple(const GTEST_$(k)_TUPLE_(U)& t) : $for m, [[f$(m)_(t.f$(m)_)]] {}
162
+
163
+ $if k == 2 [[
164
+ template <typename U0, typename U1>
165
+ tuple(const ::std::pair<U0, U1>& p) : f0_(p.first), f1_(p.second) {}
166
+
167
+ ]]
168
+
169
+ tuple& operator=(const tuple& t) { return CopyFrom(t); }
170
+
171
+ template <GTEST_$(k)_TYPENAMES_(U)>
172
+ tuple& operator=(const GTEST_$(k)_TUPLE_(U)& t) {
173
+ return CopyFrom(t);
174
+ }
175
+
176
+ $if k == 2 [[
177
+ template <typename U0, typename U1>
178
+ tuple& operator=(const ::std::pair<U0, U1>& p) {
179
+ f0_ = p.first;
180
+ f1_ = p.second;
181
+ return *this;
182
+ }
183
+
184
+ ]]
185
+
186
+ GTEST_DECLARE_TUPLE_AS_FRIEND_
187
+
188
+ template <GTEST_$(k)_TYPENAMES_(U)>
189
+ tuple& CopyFrom(const GTEST_$(k)_TUPLE_(U)& t) {
190
+
191
+ $for m [[
192
+ f$(m)_ = t.f$(m)_;
193
+
194
+ ]]
195
+ return *this;
196
+ }
197
+
198
+
199
+ $for m [[
200
+ T$m f$(m)_;
201
+
202
+ ]]
203
+ };
204
+
205
+
206
+ ]]
207
+ // 6.1.3.2 Tuple creation functions.
208
+
209
+ // Known limitations: we don't support passing an
210
+ // std::tr1::reference_wrapper<T> to make_tuple(). And we don't
211
+ // implement tie().
212
+
213
+ inline tuple<> make_tuple() { return tuple<>(); }
214
+
215
+ $for k [[
216
+ $range m 0..k-1
217
+
218
+ template <GTEST_$(k)_TYPENAMES_(T)>
219
+ inline GTEST_$(k)_TUPLE_(T) make_tuple($for m, [[const T$m& f$m]]) {
220
+ return GTEST_$(k)_TUPLE_(T)($for m, [[f$m]]);
221
+ }
222
+
223
+ ]]
224
+
225
+ // 6.1.3.3 Tuple helper classes.
226
+
227
+ template <typename Tuple> struct tuple_size;
228
+
229
+
230
+ $for j [[
231
+ template <GTEST_$(j)_TYPENAMES_(T)>
232
+ struct tuple_size<GTEST_$(j)_TUPLE_(T) > {
233
+ static const int value = $j;
234
+ };
235
+
236
+
237
+ ]]
238
+ template <int k, class Tuple>
239
+ struct tuple_element {
240
+ typedef typename gtest_internal::TupleElement<
241
+ k < (tuple_size<Tuple>::value), k, Tuple>::type type;
242
+ };
243
+
244
+ #define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element<k, Tuple >::type
245
+
246
+ // 6.1.3.4 Element access.
247
+
248
+ namespace gtest_internal {
249
+
250
+
251
+ $for i [[
252
+ template <>
253
+ class Get<$i> {
254
+ public:
255
+ template <class Tuple>
256
+ static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_($i, Tuple))
257
+ Field(Tuple& t) { return t.f$(i)_; } // NOLINT
258
+
259
+ template <class Tuple>
260
+ static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_($i, Tuple))
261
+ ConstField(const Tuple& t) { return t.f$(i)_; }
262
+ };
263
+
264
+
265
+ ]]
266
+ } // namespace gtest_internal
267
+
268
+ template <int k, GTEST_$(n)_TYPENAMES_(T)>
269
+ GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_$(n)_TUPLE_(T)))
270
+ get(GTEST_$(n)_TUPLE_(T)& t) {
271
+ return gtest_internal::Get<k>::Field(t);
272
+ }
273
+
274
+ template <int k, GTEST_$(n)_TYPENAMES_(T)>
275
+ GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_$(n)_TUPLE_(T)))
276
+ get(const GTEST_$(n)_TUPLE_(T)& t) {
277
+ return gtest_internal::Get<k>::ConstField(t);
278
+ }
279
+
280
+ // 6.1.3.5 Relational operators
281
+
282
+ // We only implement == and !=, as we don't have a need for the rest yet.
283
+
284
+ namespace gtest_internal {
285
+
286
+ // SameSizeTuplePrefixComparator<k, k>::Eq(t1, t2) returns true if the
287
+ // first k fields of t1 equals the first k fields of t2.
288
+ // SameSizeTuplePrefixComparator(k1, k2) would be a compiler error if
289
+ // k1 != k2.
290
+ template <int kSize1, int kSize2>
291
+ struct SameSizeTuplePrefixComparator;
292
+
293
+ template <>
294
+ struct SameSizeTuplePrefixComparator<0, 0> {
295
+ template <class Tuple1, class Tuple2>
296
+ static bool Eq(const Tuple1& /* t1 */, const Tuple2& /* t2 */) {
297
+ return true;
298
+ }
299
+ };
300
+
301
+ template <int k>
302
+ struct SameSizeTuplePrefixComparator<k, k> {
303
+ template <class Tuple1, class Tuple2>
304
+ static bool Eq(const Tuple1& t1, const Tuple2& t2) {
305
+ return SameSizeTuplePrefixComparator<k - 1, k - 1>::Eq(t1, t2) &&
306
+ ::std::tr1::get<k - 1>(t1) == ::std::tr1::get<k - 1>(t2);
307
+ }
308
+ };
309
+
310
+ } // namespace gtest_internal
311
+
312
+ template <GTEST_$(n)_TYPENAMES_(T), GTEST_$(n)_TYPENAMES_(U)>
313
+ inline bool operator==(const GTEST_$(n)_TUPLE_(T)& t,
314
+ const GTEST_$(n)_TUPLE_(U)& u) {
315
+ return gtest_internal::SameSizeTuplePrefixComparator<
316
+ tuple_size<GTEST_$(n)_TUPLE_(T) >::value,
317
+ tuple_size<GTEST_$(n)_TUPLE_(U) >::value>::Eq(t, u);
318
+ }
319
+
320
+ template <GTEST_$(n)_TYPENAMES_(T), GTEST_$(n)_TYPENAMES_(U)>
321
+ inline bool operator!=(const GTEST_$(n)_TUPLE_(T)& t,
322
+ const GTEST_$(n)_TUPLE_(U)& u) { return !(t == u); }
323
+
324
+ // 6.1.4 Pairs.
325
+ // Unimplemented.
326
+
327
+ } // namespace tr1
328
+ } // namespace std
329
+
330
+
331
+ $for j [[
332
+ #undef GTEST_$(j)_TUPLE_
333
+
334
+ ]]
335
+
336
+
337
+ $for j [[
338
+ #undef GTEST_$(j)_TYPENAMES_
339
+
340
+ ]]
341
+
342
+ #undef GTEST_DECLARE_TUPLE_AS_FRIEND_
343
+ #undef GTEST_BY_REF_
344
+ #undef GTEST_ADD_REF_
345
+ #undef GTEST_TUPLE_ELEMENT_
346
+
347
+ #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_
@@ -0,0 +1,3347 @@
1
+ // This file was GENERATED by command:
2
+ // pump.py gtest-type-util.h.pump
3
+ // DO NOT EDIT BY HAND!!!
4
+
5
+ // Copyright 2008 Google Inc.
6
+ // All Rights Reserved.
7
+ //
8
+ // Redistribution and use in source and binary forms, with or without
9
+ // modification, are permitted provided that the following conditions are
10
+ // met:
11
+ //
12
+ // * Redistributions of source code must retain the above copyright
13
+ // notice, this list of conditions and the following disclaimer.
14
+ // * Redistributions in binary form must reproduce the above
15
+ // copyright notice, this list of conditions and the following disclaimer
16
+ // in the documentation and/or other materials provided with the
17
+ // distribution.
18
+ // * Neither the name of Google Inc. nor the names of its
19
+ // contributors may be used to endorse or promote products derived from
20
+ // this software without specific prior written permission.
21
+ //
22
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
+ //
34
+ // Author: wan@google.com (Zhanyong Wan)
35
+
36
+ // Type utilities needed for implementing typed and type-parameterized
37
+ // tests. This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
38
+ //
39
+ // Currently we support at most 50 types in a list, and at most 50
40
+ // type-parameterized tests in one type-parameterized test case.
41
+ // Please contact googletestframework@googlegroups.com if you need
42
+ // more.
43
+
44
+ #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
45
+ #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
46
+
47
+ #include "gtest/internal/gtest-port.h"
48
+
49
+ // #ifdef __GNUC__ is too general here. It is possible to use gcc without using
50
+ // libstdc++ (which is where cxxabi.h comes from).
51
+ # if GTEST_HAS_CXXABI_H_
52
+ # include <cxxabi.h>
53
+ # elif defined(__HP_aCC)
54
+ # include <acxx_demangle.h>
55
+ # endif // GTEST_HASH_CXXABI_H_
56
+
57
+ namespace testing {
58
+ namespace internal {
59
+
60
+ // Canonicalizes a given name with respect to the Standard C++ Library.
61
+ // This handles removing the inline namespace within `std` that is
62
+ // used by various standard libraries (e.g., `std::__1`). Names outside
63
+ // of namespace std are returned unmodified.
64
+ inline std::string CanonicalizeForStdLibVersioning(std::string s) {
65
+ static const char prefix[] = "std::__";
66
+ if (s.compare(0, strlen(prefix), prefix) == 0) {
67
+ std::string::size_type end = s.find("::", strlen(prefix));
68
+ if (end != s.npos) {
69
+ // Erase everything between the initial `std` and the second `::`.
70
+ s.erase(strlen("std"), end - strlen("std"));
71
+ }
72
+ }
73
+ return s;
74
+ }
75
+
76
+ // GetTypeName<T>() returns a human-readable name of type T.
77
+ // NB: This function is also used in Google Mock, so don't move it inside of
78
+ // the typed-test-only section below.
79
+ template <typename T>
80
+ std::string GetTypeName() {
81
+ # if GTEST_HAS_RTTI
82
+
83
+ const char* const name = typeid(T).name();
84
+ # if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC)
85
+ int status = 0;
86
+ // gcc's implementation of typeid(T).name() mangles the type name,
87
+ // so we have to demangle it.
88
+ # if GTEST_HAS_CXXABI_H_
89
+ using abi::__cxa_demangle;
90
+ # endif // GTEST_HAS_CXXABI_H_
91
+ char* const readable_name = __cxa_demangle(name, 0, 0, &status);
92
+ const std::string name_str(status == 0 ? readable_name : name);
93
+ free(readable_name);
94
+ return CanonicalizeForStdLibVersioning(name_str);
95
+ # else
96
+ return name;
97
+ # endif // GTEST_HAS_CXXABI_H_ || __HP_aCC
98
+
99
+ # else
100
+
101
+ return "<type>";
102
+
103
+ # endif // GTEST_HAS_RTTI
104
+ }
105
+
106
+ #if GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
107
+
108
+ // AssertyTypeEq<T1, T2>::type is defined iff T1 and T2 are the same
109
+ // type. This can be used as a compile-time assertion to ensure that
110
+ // two types are equal.
111
+
112
+ template <typename T1, typename T2>
113
+ struct AssertTypeEq;
114
+
115
+ template <typename T>
116
+ struct AssertTypeEq<T, T> {
117
+ typedef bool type;
118
+ };
119
+
120
+ // A unique type used as the default value for the arguments of class
121
+ // template Types. This allows us to simulate variadic templates
122
+ // (e.g. Types<int>, Type<int, double>, and etc), which C++ doesn't
123
+ // support directly.
124
+ struct None {};
125
+
126
+ // The following family of struct and struct templates are used to
127
+ // represent type lists. In particular, TypesN<T1, T2, ..., TN>
128
+ // represents a type list with N types (T1, T2, ..., and TN) in it.
129
+ // Except for Types0, every struct in the family has two member types:
130
+ // Head for the first type in the list, and Tail for the rest of the
131
+ // list.
132
+
133
+ // The empty type list.
134
+ struct Types0 {};
135
+
136
+ // Type lists of length 1, 2, 3, and so on.
137
+
138
+ template <typename T1>
139
+ struct Types1 {
140
+ typedef T1 Head;
141
+ typedef Types0 Tail;
142
+ };
143
+ template <typename T1, typename T2>
144
+ struct Types2 {
145
+ typedef T1 Head;
146
+ typedef Types1<T2> Tail;
147
+ };
148
+
149
+ template <typename T1, typename T2, typename T3>
150
+ struct Types3 {
151
+ typedef T1 Head;
152
+ typedef Types2<T2, T3> Tail;
153
+ };
154
+
155
+ template <typename T1, typename T2, typename T3, typename T4>
156
+ struct Types4 {
157
+ typedef T1 Head;
158
+ typedef Types3<T2, T3, T4> Tail;
159
+ };
160
+
161
+ template <typename T1, typename T2, typename T3, typename T4, typename T5>
162
+ struct Types5 {
163
+ typedef T1 Head;
164
+ typedef Types4<T2, T3, T4, T5> Tail;
165
+ };
166
+
167
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
168
+ typename T6>
169
+ struct Types6 {
170
+ typedef T1 Head;
171
+ typedef Types5<T2, T3, T4, T5, T6> Tail;
172
+ };
173
+
174
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
175
+ typename T6, typename T7>
176
+ struct Types7 {
177
+ typedef T1 Head;
178
+ typedef Types6<T2, T3, T4, T5, T6, T7> Tail;
179
+ };
180
+
181
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
182
+ typename T6, typename T7, typename T8>
183
+ struct Types8 {
184
+ typedef T1 Head;
185
+ typedef Types7<T2, T3, T4, T5, T6, T7, T8> Tail;
186
+ };
187
+
188
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
189
+ typename T6, typename T7, typename T8, typename T9>
190
+ struct Types9 {
191
+ typedef T1 Head;
192
+ typedef Types8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
193
+ };
194
+
195
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
196
+ typename T6, typename T7, typename T8, typename T9, typename T10>
197
+ struct Types10 {
198
+ typedef T1 Head;
199
+ typedef Types9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
200
+ };
201
+
202
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
203
+ typename T6, typename T7, typename T8, typename T9, typename T10,
204
+ typename T11>
205
+ struct Types11 {
206
+ typedef T1 Head;
207
+ typedef Types10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
208
+ };
209
+
210
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
211
+ typename T6, typename T7, typename T8, typename T9, typename T10,
212
+ typename T11, typename T12>
213
+ struct Types12 {
214
+ typedef T1 Head;
215
+ typedef Types11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
216
+ };
217
+
218
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
219
+ typename T6, typename T7, typename T8, typename T9, typename T10,
220
+ typename T11, typename T12, typename T13>
221
+ struct Types13 {
222
+ typedef T1 Head;
223
+ typedef Types12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
224
+ };
225
+
226
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
227
+ typename T6, typename T7, typename T8, typename T9, typename T10,
228
+ typename T11, typename T12, typename T13, typename T14>
229
+ struct Types14 {
230
+ typedef T1 Head;
231
+ typedef Types13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tail;
232
+ };
233
+
234
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
235
+ typename T6, typename T7, typename T8, typename T9, typename T10,
236
+ typename T11, typename T12, typename T13, typename T14, typename T15>
237
+ struct Types15 {
238
+ typedef T1 Head;
239
+ typedef Types14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
240
+ T15> Tail;
241
+ };
242
+
243
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
244
+ typename T6, typename T7, typename T8, typename T9, typename T10,
245
+ typename T11, typename T12, typename T13, typename T14, typename T15,
246
+ typename T16>
247
+ struct Types16 {
248
+ typedef T1 Head;
249
+ typedef Types15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
250
+ T16> Tail;
251
+ };
252
+
253
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
254
+ typename T6, typename T7, typename T8, typename T9, typename T10,
255
+ typename T11, typename T12, typename T13, typename T14, typename T15,
256
+ typename T16, typename T17>
257
+ struct Types17 {
258
+ typedef T1 Head;
259
+ typedef Types16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
260
+ T16, T17> Tail;
261
+ };
262
+
263
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
264
+ typename T6, typename T7, typename T8, typename T9, typename T10,
265
+ typename T11, typename T12, typename T13, typename T14, typename T15,
266
+ typename T16, typename T17, typename T18>
267
+ struct Types18 {
268
+ typedef T1 Head;
269
+ typedef Types17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
270
+ T16, T17, T18> Tail;
271
+ };
272
+
273
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
274
+ typename T6, typename T7, typename T8, typename T9, typename T10,
275
+ typename T11, typename T12, typename T13, typename T14, typename T15,
276
+ typename T16, typename T17, typename T18, typename T19>
277
+ struct Types19 {
278
+ typedef T1 Head;
279
+ typedef Types18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
280
+ T16, T17, T18, T19> Tail;
281
+ };
282
+
283
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
284
+ typename T6, typename T7, typename T8, typename T9, typename T10,
285
+ typename T11, typename T12, typename T13, typename T14, typename T15,
286
+ typename T16, typename T17, typename T18, typename T19, typename T20>
287
+ struct Types20 {
288
+ typedef T1 Head;
289
+ typedef Types19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
290
+ T16, T17, T18, T19, T20> Tail;
291
+ };
292
+
293
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
294
+ typename T6, typename T7, typename T8, typename T9, typename T10,
295
+ typename T11, typename T12, typename T13, typename T14, typename T15,
296
+ typename T16, typename T17, typename T18, typename T19, typename T20,
297
+ typename T21>
298
+ struct Types21 {
299
+ typedef T1 Head;
300
+ typedef Types20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
301
+ T16, T17, T18, T19, T20, T21> Tail;
302
+ };
303
+
304
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
305
+ typename T6, typename T7, typename T8, typename T9, typename T10,
306
+ typename T11, typename T12, typename T13, typename T14, typename T15,
307
+ typename T16, typename T17, typename T18, typename T19, typename T20,
308
+ typename T21, typename T22>
309
+ struct Types22 {
310
+ typedef T1 Head;
311
+ typedef Types21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
312
+ T16, T17, T18, T19, T20, T21, T22> Tail;
313
+ };
314
+
315
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
316
+ typename T6, typename T7, typename T8, typename T9, typename T10,
317
+ typename T11, typename T12, typename T13, typename T14, typename T15,
318
+ typename T16, typename T17, typename T18, typename T19, typename T20,
319
+ typename T21, typename T22, typename T23>
320
+ struct Types23 {
321
+ typedef T1 Head;
322
+ typedef Types22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
323
+ T16, T17, T18, T19, T20, T21, T22, T23> Tail;
324
+ };
325
+
326
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
327
+ typename T6, typename T7, typename T8, typename T9, typename T10,
328
+ typename T11, typename T12, typename T13, typename T14, typename T15,
329
+ typename T16, typename T17, typename T18, typename T19, typename T20,
330
+ typename T21, typename T22, typename T23, typename T24>
331
+ struct Types24 {
332
+ typedef T1 Head;
333
+ typedef Types23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
334
+ T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
335
+ };
336
+
337
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
338
+ typename T6, typename T7, typename T8, typename T9, typename T10,
339
+ typename T11, typename T12, typename T13, typename T14, typename T15,
340
+ typename T16, typename T17, typename T18, typename T19, typename T20,
341
+ typename T21, typename T22, typename T23, typename T24, typename T25>
342
+ struct Types25 {
343
+ typedef T1 Head;
344
+ typedef Types24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
345
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
346
+ };
347
+
348
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
349
+ typename T6, typename T7, typename T8, typename T9, typename T10,
350
+ typename T11, typename T12, typename T13, typename T14, typename T15,
351
+ typename T16, typename T17, typename T18, typename T19, typename T20,
352
+ typename T21, typename T22, typename T23, typename T24, typename T25,
353
+ typename T26>
354
+ struct Types26 {
355
+ typedef T1 Head;
356
+ typedef Types25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
357
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
358
+ };
359
+
360
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
361
+ typename T6, typename T7, typename T8, typename T9, typename T10,
362
+ typename T11, typename T12, typename T13, typename T14, typename T15,
363
+ typename T16, typename T17, typename T18, typename T19, typename T20,
364
+ typename T21, typename T22, typename T23, typename T24, typename T25,
365
+ typename T26, typename T27>
366
+ struct Types27 {
367
+ typedef T1 Head;
368
+ typedef Types26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
369
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
370
+ };
371
+
372
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
373
+ typename T6, typename T7, typename T8, typename T9, typename T10,
374
+ typename T11, typename T12, typename T13, typename T14, typename T15,
375
+ typename T16, typename T17, typename T18, typename T19, typename T20,
376
+ typename T21, typename T22, typename T23, typename T24, typename T25,
377
+ typename T26, typename T27, typename T28>
378
+ struct Types28 {
379
+ typedef T1 Head;
380
+ typedef Types27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
381
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Tail;
382
+ };
383
+
384
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
385
+ typename T6, typename T7, typename T8, typename T9, typename T10,
386
+ typename T11, typename T12, typename T13, typename T14, typename T15,
387
+ typename T16, typename T17, typename T18, typename T19, typename T20,
388
+ typename T21, typename T22, typename T23, typename T24, typename T25,
389
+ typename T26, typename T27, typename T28, typename T29>
390
+ struct Types29 {
391
+ typedef T1 Head;
392
+ typedef Types28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
393
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
394
+ T29> Tail;
395
+ };
396
+
397
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
398
+ typename T6, typename T7, typename T8, typename T9, typename T10,
399
+ typename T11, typename T12, typename T13, typename T14, typename T15,
400
+ typename T16, typename T17, typename T18, typename T19, typename T20,
401
+ typename T21, typename T22, typename T23, typename T24, typename T25,
402
+ typename T26, typename T27, typename T28, typename T29, typename T30>
403
+ struct Types30 {
404
+ typedef T1 Head;
405
+ typedef Types29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
406
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
407
+ T30> Tail;
408
+ };
409
+
410
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
411
+ typename T6, typename T7, typename T8, typename T9, typename T10,
412
+ typename T11, typename T12, typename T13, typename T14, typename T15,
413
+ typename T16, typename T17, typename T18, typename T19, typename T20,
414
+ typename T21, typename T22, typename T23, typename T24, typename T25,
415
+ typename T26, typename T27, typename T28, typename T29, typename T30,
416
+ typename T31>
417
+ struct Types31 {
418
+ typedef T1 Head;
419
+ typedef Types30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
420
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
421
+ T30, T31> Tail;
422
+ };
423
+
424
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
425
+ typename T6, typename T7, typename T8, typename T9, typename T10,
426
+ typename T11, typename T12, typename T13, typename T14, typename T15,
427
+ typename T16, typename T17, typename T18, typename T19, typename T20,
428
+ typename T21, typename T22, typename T23, typename T24, typename T25,
429
+ typename T26, typename T27, typename T28, typename T29, typename T30,
430
+ typename T31, typename T32>
431
+ struct Types32 {
432
+ typedef T1 Head;
433
+ typedef Types31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
434
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
435
+ T30, T31, T32> Tail;
436
+ };
437
+
438
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
439
+ typename T6, typename T7, typename T8, typename T9, typename T10,
440
+ typename T11, typename T12, typename T13, typename T14, typename T15,
441
+ typename T16, typename T17, typename T18, typename T19, typename T20,
442
+ typename T21, typename T22, typename T23, typename T24, typename T25,
443
+ typename T26, typename T27, typename T28, typename T29, typename T30,
444
+ typename T31, typename T32, typename T33>
445
+ struct Types33 {
446
+ typedef T1 Head;
447
+ typedef Types32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
448
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
449
+ T30, T31, T32, T33> Tail;
450
+ };
451
+
452
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
453
+ typename T6, typename T7, typename T8, typename T9, typename T10,
454
+ typename T11, typename T12, typename T13, typename T14, typename T15,
455
+ typename T16, typename T17, typename T18, typename T19, typename T20,
456
+ typename T21, typename T22, typename T23, typename T24, typename T25,
457
+ typename T26, typename T27, typename T28, typename T29, typename T30,
458
+ typename T31, typename T32, typename T33, typename T34>
459
+ struct Types34 {
460
+ typedef T1 Head;
461
+ typedef Types33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
462
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
463
+ T30, T31, T32, T33, T34> Tail;
464
+ };
465
+
466
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
467
+ typename T6, typename T7, typename T8, typename T9, typename T10,
468
+ typename T11, typename T12, typename T13, typename T14, typename T15,
469
+ typename T16, typename T17, typename T18, typename T19, typename T20,
470
+ typename T21, typename T22, typename T23, typename T24, typename T25,
471
+ typename T26, typename T27, typename T28, typename T29, typename T30,
472
+ typename T31, typename T32, typename T33, typename T34, typename T35>
473
+ struct Types35 {
474
+ typedef T1 Head;
475
+ typedef Types34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
476
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
477
+ T30, T31, T32, T33, T34, T35> Tail;
478
+ };
479
+
480
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
481
+ typename T6, typename T7, typename T8, typename T9, typename T10,
482
+ typename T11, typename T12, typename T13, typename T14, typename T15,
483
+ typename T16, typename T17, typename T18, typename T19, typename T20,
484
+ typename T21, typename T22, typename T23, typename T24, typename T25,
485
+ typename T26, typename T27, typename T28, typename T29, typename T30,
486
+ typename T31, typename T32, typename T33, typename T34, typename T35,
487
+ typename T36>
488
+ struct Types36 {
489
+ typedef T1 Head;
490
+ typedef Types35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
491
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
492
+ T30, T31, T32, T33, T34, T35, T36> Tail;
493
+ };
494
+
495
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
496
+ typename T6, typename T7, typename T8, typename T9, typename T10,
497
+ typename T11, typename T12, typename T13, typename T14, typename T15,
498
+ typename T16, typename T17, typename T18, typename T19, typename T20,
499
+ typename T21, typename T22, typename T23, typename T24, typename T25,
500
+ typename T26, typename T27, typename T28, typename T29, typename T30,
501
+ typename T31, typename T32, typename T33, typename T34, typename T35,
502
+ typename T36, typename T37>
503
+ struct Types37 {
504
+ typedef T1 Head;
505
+ typedef Types36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
506
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
507
+ T30, T31, T32, T33, T34, T35, T36, T37> Tail;
508
+ };
509
+
510
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
511
+ typename T6, typename T7, typename T8, typename T9, typename T10,
512
+ typename T11, typename T12, typename T13, typename T14, typename T15,
513
+ typename T16, typename T17, typename T18, typename T19, typename T20,
514
+ typename T21, typename T22, typename T23, typename T24, typename T25,
515
+ typename T26, typename T27, typename T28, typename T29, typename T30,
516
+ typename T31, typename T32, typename T33, typename T34, typename T35,
517
+ typename T36, typename T37, typename T38>
518
+ struct Types38 {
519
+ typedef T1 Head;
520
+ typedef Types37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
521
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
522
+ T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
523
+ };
524
+
525
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
526
+ typename T6, typename T7, typename T8, typename T9, typename T10,
527
+ typename T11, typename T12, typename T13, typename T14, typename T15,
528
+ typename T16, typename T17, typename T18, typename T19, typename T20,
529
+ typename T21, typename T22, typename T23, typename T24, typename T25,
530
+ typename T26, typename T27, typename T28, typename T29, typename T30,
531
+ typename T31, typename T32, typename T33, typename T34, typename T35,
532
+ typename T36, typename T37, typename T38, typename T39>
533
+ struct Types39 {
534
+ typedef T1 Head;
535
+ typedef Types38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
536
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
537
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
538
+ };
539
+
540
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
541
+ typename T6, typename T7, typename T8, typename T9, typename T10,
542
+ typename T11, typename T12, typename T13, typename T14, typename T15,
543
+ typename T16, typename T17, typename T18, typename T19, typename T20,
544
+ typename T21, typename T22, typename T23, typename T24, typename T25,
545
+ typename T26, typename T27, typename T28, typename T29, typename T30,
546
+ typename T31, typename T32, typename T33, typename T34, typename T35,
547
+ typename T36, typename T37, typename T38, typename T39, typename T40>
548
+ struct Types40 {
549
+ typedef T1 Head;
550
+ typedef Types39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
551
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
552
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
553
+ };
554
+
555
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
556
+ typename T6, typename T7, typename T8, typename T9, typename T10,
557
+ typename T11, typename T12, typename T13, typename T14, typename T15,
558
+ typename T16, typename T17, typename T18, typename T19, typename T20,
559
+ typename T21, typename T22, typename T23, typename T24, typename T25,
560
+ typename T26, typename T27, typename T28, typename T29, typename T30,
561
+ typename T31, typename T32, typename T33, typename T34, typename T35,
562
+ typename T36, typename T37, typename T38, typename T39, typename T40,
563
+ typename T41>
564
+ struct Types41 {
565
+ typedef T1 Head;
566
+ typedef Types40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
567
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
568
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
569
+ };
570
+
571
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
572
+ typename T6, typename T7, typename T8, typename T9, typename T10,
573
+ typename T11, typename T12, typename T13, typename T14, typename T15,
574
+ typename T16, typename T17, typename T18, typename T19, typename T20,
575
+ typename T21, typename T22, typename T23, typename T24, typename T25,
576
+ typename T26, typename T27, typename T28, typename T29, typename T30,
577
+ typename T31, typename T32, typename T33, typename T34, typename T35,
578
+ typename T36, typename T37, typename T38, typename T39, typename T40,
579
+ typename T41, typename T42>
580
+ struct Types42 {
581
+ typedef T1 Head;
582
+ typedef Types41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
583
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
584
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42> Tail;
585
+ };
586
+
587
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
588
+ typename T6, typename T7, typename T8, typename T9, typename T10,
589
+ typename T11, typename T12, typename T13, typename T14, typename T15,
590
+ typename T16, typename T17, typename T18, typename T19, typename T20,
591
+ typename T21, typename T22, typename T23, typename T24, typename T25,
592
+ typename T26, typename T27, typename T28, typename T29, typename T30,
593
+ typename T31, typename T32, typename T33, typename T34, typename T35,
594
+ typename T36, typename T37, typename T38, typename T39, typename T40,
595
+ typename T41, typename T42, typename T43>
596
+ struct Types43 {
597
+ typedef T1 Head;
598
+ typedef Types42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
599
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
600
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
601
+ T43> Tail;
602
+ };
603
+
604
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
605
+ typename T6, typename T7, typename T8, typename T9, typename T10,
606
+ typename T11, typename T12, typename T13, typename T14, typename T15,
607
+ typename T16, typename T17, typename T18, typename T19, typename T20,
608
+ typename T21, typename T22, typename T23, typename T24, typename T25,
609
+ typename T26, typename T27, typename T28, typename T29, typename T30,
610
+ typename T31, typename T32, typename T33, typename T34, typename T35,
611
+ typename T36, typename T37, typename T38, typename T39, typename T40,
612
+ typename T41, typename T42, typename T43, typename T44>
613
+ struct Types44 {
614
+ typedef T1 Head;
615
+ typedef Types43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
616
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
617
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
618
+ T44> Tail;
619
+ };
620
+
621
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
622
+ typename T6, typename T7, typename T8, typename T9, typename T10,
623
+ typename T11, typename T12, typename T13, typename T14, typename T15,
624
+ typename T16, typename T17, typename T18, typename T19, typename T20,
625
+ typename T21, typename T22, typename T23, typename T24, typename T25,
626
+ typename T26, typename T27, typename T28, typename T29, typename T30,
627
+ typename T31, typename T32, typename T33, typename T34, typename T35,
628
+ typename T36, typename T37, typename T38, typename T39, typename T40,
629
+ typename T41, typename T42, typename T43, typename T44, typename T45>
630
+ struct Types45 {
631
+ typedef T1 Head;
632
+ typedef Types44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
633
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
634
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
635
+ T44, T45> Tail;
636
+ };
637
+
638
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
639
+ typename T6, typename T7, typename T8, typename T9, typename T10,
640
+ typename T11, typename T12, typename T13, typename T14, typename T15,
641
+ typename T16, typename T17, typename T18, typename T19, typename T20,
642
+ typename T21, typename T22, typename T23, typename T24, typename T25,
643
+ typename T26, typename T27, typename T28, typename T29, typename T30,
644
+ typename T31, typename T32, typename T33, typename T34, typename T35,
645
+ typename T36, typename T37, typename T38, typename T39, typename T40,
646
+ typename T41, typename T42, typename T43, typename T44, typename T45,
647
+ typename T46>
648
+ struct Types46 {
649
+ typedef T1 Head;
650
+ typedef Types45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
651
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
652
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
653
+ T44, T45, T46> Tail;
654
+ };
655
+
656
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
657
+ typename T6, typename T7, typename T8, typename T9, typename T10,
658
+ typename T11, typename T12, typename T13, typename T14, typename T15,
659
+ typename T16, typename T17, typename T18, typename T19, typename T20,
660
+ typename T21, typename T22, typename T23, typename T24, typename T25,
661
+ typename T26, typename T27, typename T28, typename T29, typename T30,
662
+ typename T31, typename T32, typename T33, typename T34, typename T35,
663
+ typename T36, typename T37, typename T38, typename T39, typename T40,
664
+ typename T41, typename T42, typename T43, typename T44, typename T45,
665
+ typename T46, typename T47>
666
+ struct Types47 {
667
+ typedef T1 Head;
668
+ typedef Types46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
669
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
670
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
671
+ T44, T45, T46, T47> Tail;
672
+ };
673
+
674
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
675
+ typename T6, typename T7, typename T8, typename T9, typename T10,
676
+ typename T11, typename T12, typename T13, typename T14, typename T15,
677
+ typename T16, typename T17, typename T18, typename T19, typename T20,
678
+ typename T21, typename T22, typename T23, typename T24, typename T25,
679
+ typename T26, typename T27, typename T28, typename T29, typename T30,
680
+ typename T31, typename T32, typename T33, typename T34, typename T35,
681
+ typename T36, typename T37, typename T38, typename T39, typename T40,
682
+ typename T41, typename T42, typename T43, typename T44, typename T45,
683
+ typename T46, typename T47, typename T48>
684
+ struct Types48 {
685
+ typedef T1 Head;
686
+ typedef Types47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
687
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
688
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
689
+ T44, T45, T46, T47, T48> Tail;
690
+ };
691
+
692
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
693
+ typename T6, typename T7, typename T8, typename T9, typename T10,
694
+ typename T11, typename T12, typename T13, typename T14, typename T15,
695
+ typename T16, typename T17, typename T18, typename T19, typename T20,
696
+ typename T21, typename T22, typename T23, typename T24, typename T25,
697
+ typename T26, typename T27, typename T28, typename T29, typename T30,
698
+ typename T31, typename T32, typename T33, typename T34, typename T35,
699
+ typename T36, typename T37, typename T38, typename T39, typename T40,
700
+ typename T41, typename T42, typename T43, typename T44, typename T45,
701
+ typename T46, typename T47, typename T48, typename T49>
702
+ struct Types49 {
703
+ typedef T1 Head;
704
+ typedef Types48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
705
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
706
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
707
+ T44, T45, T46, T47, T48, T49> Tail;
708
+ };
709
+
710
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
711
+ typename T6, typename T7, typename T8, typename T9, typename T10,
712
+ typename T11, typename T12, typename T13, typename T14, typename T15,
713
+ typename T16, typename T17, typename T18, typename T19, typename T20,
714
+ typename T21, typename T22, typename T23, typename T24, typename T25,
715
+ typename T26, typename T27, typename T28, typename T29, typename T30,
716
+ typename T31, typename T32, typename T33, typename T34, typename T35,
717
+ typename T36, typename T37, typename T38, typename T39, typename T40,
718
+ typename T41, typename T42, typename T43, typename T44, typename T45,
719
+ typename T46, typename T47, typename T48, typename T49, typename T50>
720
+ struct Types50 {
721
+ typedef T1 Head;
722
+ typedef Types49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
723
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
724
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
725
+ T44, T45, T46, T47, T48, T49, T50> Tail;
726
+ };
727
+
728
+
729
+ } // namespace internal
730
+
731
+ // We don't want to require the users to write TypesN<...> directly,
732
+ // as that would require them to count the length. Types<...> is much
733
+ // easier to write, but generates horrible messages when there is a
734
+ // compiler error, as gcc insists on printing out each template
735
+ // argument, even if it has the default value (this means Types<int>
736
+ // will appear as Types<int, None, None, ..., None> in the compiler
737
+ // errors).
738
+ //
739
+ // Our solution is to combine the best part of the two approaches: a
740
+ // user would write Types<T1, ..., TN>, and Google Test will translate
741
+ // that to TypesN<T1, ..., TN> internally to make error messages
742
+ // readable. The translation is done by the 'type' member of the
743
+ // Types template.
744
+ template <typename T1 = internal::None, typename T2 = internal::None,
745
+ typename T3 = internal::None, typename T4 = internal::None,
746
+ typename T5 = internal::None, typename T6 = internal::None,
747
+ typename T7 = internal::None, typename T8 = internal::None,
748
+ typename T9 = internal::None, typename T10 = internal::None,
749
+ typename T11 = internal::None, typename T12 = internal::None,
750
+ typename T13 = internal::None, typename T14 = internal::None,
751
+ typename T15 = internal::None, typename T16 = internal::None,
752
+ typename T17 = internal::None, typename T18 = internal::None,
753
+ typename T19 = internal::None, typename T20 = internal::None,
754
+ typename T21 = internal::None, typename T22 = internal::None,
755
+ typename T23 = internal::None, typename T24 = internal::None,
756
+ typename T25 = internal::None, typename T26 = internal::None,
757
+ typename T27 = internal::None, typename T28 = internal::None,
758
+ typename T29 = internal::None, typename T30 = internal::None,
759
+ typename T31 = internal::None, typename T32 = internal::None,
760
+ typename T33 = internal::None, typename T34 = internal::None,
761
+ typename T35 = internal::None, typename T36 = internal::None,
762
+ typename T37 = internal::None, typename T38 = internal::None,
763
+ typename T39 = internal::None, typename T40 = internal::None,
764
+ typename T41 = internal::None, typename T42 = internal::None,
765
+ typename T43 = internal::None, typename T44 = internal::None,
766
+ typename T45 = internal::None, typename T46 = internal::None,
767
+ typename T47 = internal::None, typename T48 = internal::None,
768
+ typename T49 = internal::None, typename T50 = internal::None>
769
+ struct Types {
770
+ typedef internal::Types50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
771
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
772
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
773
+ T41, T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
774
+ };
775
+
776
+ template <>
777
+ struct Types<internal::None, internal::None, internal::None, internal::None,
778
+ internal::None, internal::None, internal::None, internal::None,
779
+ internal::None, internal::None, internal::None, internal::None,
780
+ internal::None, internal::None, internal::None, internal::None,
781
+ internal::None, internal::None, internal::None, internal::None,
782
+ internal::None, internal::None, internal::None, internal::None,
783
+ internal::None, internal::None, internal::None, internal::None,
784
+ internal::None, internal::None, internal::None, internal::None,
785
+ internal::None, internal::None, internal::None, internal::None,
786
+ internal::None, internal::None, internal::None, internal::None,
787
+ internal::None, internal::None, internal::None, internal::None,
788
+ internal::None, internal::None, internal::None, internal::None,
789
+ internal::None, internal::None> {
790
+ typedef internal::Types0 type;
791
+ };
792
+ template <typename T1>
793
+ struct Types<T1, internal::None, internal::None, internal::None,
794
+ internal::None, internal::None, internal::None, internal::None,
795
+ internal::None, internal::None, internal::None, internal::None,
796
+ internal::None, internal::None, internal::None, internal::None,
797
+ internal::None, internal::None, internal::None, internal::None,
798
+ internal::None, internal::None, internal::None, internal::None,
799
+ internal::None, internal::None, internal::None, internal::None,
800
+ internal::None, internal::None, internal::None, internal::None,
801
+ internal::None, internal::None, internal::None, internal::None,
802
+ internal::None, internal::None, internal::None, internal::None,
803
+ internal::None, internal::None, internal::None, internal::None,
804
+ internal::None, internal::None, internal::None, internal::None,
805
+ internal::None, internal::None> {
806
+ typedef internal::Types1<T1> type;
807
+ };
808
+ template <typename T1, typename T2>
809
+ struct Types<T1, T2, internal::None, internal::None, internal::None,
810
+ internal::None, internal::None, internal::None, internal::None,
811
+ internal::None, internal::None, internal::None, internal::None,
812
+ internal::None, internal::None, internal::None, internal::None,
813
+ internal::None, internal::None, internal::None, internal::None,
814
+ internal::None, internal::None, internal::None, internal::None,
815
+ internal::None, internal::None, internal::None, internal::None,
816
+ internal::None, internal::None, internal::None, internal::None,
817
+ internal::None, internal::None, internal::None, internal::None,
818
+ internal::None, internal::None, internal::None, internal::None,
819
+ internal::None, internal::None, internal::None, internal::None,
820
+ internal::None, internal::None, internal::None, internal::None,
821
+ internal::None> {
822
+ typedef internal::Types2<T1, T2> type;
823
+ };
824
+ template <typename T1, typename T2, typename T3>
825
+ struct Types<T1, T2, T3, internal::None, internal::None, internal::None,
826
+ internal::None, internal::None, internal::None, internal::None,
827
+ internal::None, internal::None, internal::None, internal::None,
828
+ internal::None, internal::None, internal::None, internal::None,
829
+ internal::None, internal::None, internal::None, internal::None,
830
+ internal::None, internal::None, internal::None, internal::None,
831
+ internal::None, internal::None, internal::None, internal::None,
832
+ internal::None, internal::None, internal::None, internal::None,
833
+ internal::None, internal::None, internal::None, internal::None,
834
+ internal::None, internal::None, internal::None, internal::None,
835
+ internal::None, internal::None, internal::None, internal::None,
836
+ internal::None, internal::None, internal::None, internal::None> {
837
+ typedef internal::Types3<T1, T2, T3> type;
838
+ };
839
+ template <typename T1, typename T2, typename T3, typename T4>
840
+ struct Types<T1, T2, T3, T4, internal::None, internal::None, internal::None,
841
+ internal::None, internal::None, internal::None, internal::None,
842
+ internal::None, internal::None, internal::None, internal::None,
843
+ internal::None, internal::None, internal::None, internal::None,
844
+ internal::None, internal::None, internal::None, internal::None,
845
+ internal::None, internal::None, internal::None, internal::None,
846
+ internal::None, internal::None, internal::None, internal::None,
847
+ internal::None, internal::None, internal::None, internal::None,
848
+ internal::None, internal::None, internal::None, internal::None,
849
+ internal::None, internal::None, internal::None, internal::None,
850
+ internal::None, internal::None, internal::None, internal::None,
851
+ internal::None, internal::None, internal::None> {
852
+ typedef internal::Types4<T1, T2, T3, T4> type;
853
+ };
854
+ template <typename T1, typename T2, typename T3, typename T4, typename T5>
855
+ struct Types<T1, T2, T3, T4, T5, internal::None, internal::None,
856
+ internal::None, internal::None, internal::None, internal::None,
857
+ internal::None, internal::None, internal::None, internal::None,
858
+ internal::None, internal::None, internal::None, internal::None,
859
+ internal::None, internal::None, internal::None, internal::None,
860
+ internal::None, internal::None, internal::None, internal::None,
861
+ internal::None, internal::None, internal::None, internal::None,
862
+ internal::None, internal::None, internal::None, internal::None,
863
+ internal::None, internal::None, internal::None, internal::None,
864
+ internal::None, internal::None, internal::None, internal::None,
865
+ internal::None, internal::None, internal::None, internal::None,
866
+ internal::None, internal::None, internal::None> {
867
+ typedef internal::Types5<T1, T2, T3, T4, T5> type;
868
+ };
869
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
870
+ typename T6>
871
+ struct Types<T1, T2, T3, T4, T5, T6, internal::None, internal::None,
872
+ internal::None, internal::None, internal::None, internal::None,
873
+ internal::None, internal::None, internal::None, internal::None,
874
+ internal::None, internal::None, internal::None, internal::None,
875
+ internal::None, internal::None, internal::None, internal::None,
876
+ internal::None, internal::None, internal::None, internal::None,
877
+ internal::None, internal::None, internal::None, internal::None,
878
+ internal::None, internal::None, internal::None, internal::None,
879
+ internal::None, internal::None, internal::None, internal::None,
880
+ internal::None, internal::None, internal::None, internal::None,
881
+ internal::None, internal::None, internal::None, internal::None,
882
+ internal::None, internal::None> {
883
+ typedef internal::Types6<T1, T2, T3, T4, T5, T6> type;
884
+ };
885
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
886
+ typename T6, typename T7>
887
+ struct Types<T1, T2, T3, T4, T5, T6, T7, internal::None, internal::None,
888
+ internal::None, internal::None, internal::None, internal::None,
889
+ internal::None, internal::None, internal::None, internal::None,
890
+ internal::None, internal::None, internal::None, internal::None,
891
+ internal::None, internal::None, internal::None, internal::None,
892
+ internal::None, internal::None, internal::None, internal::None,
893
+ internal::None, internal::None, internal::None, internal::None,
894
+ internal::None, internal::None, internal::None, internal::None,
895
+ internal::None, internal::None, internal::None, internal::None,
896
+ internal::None, internal::None, internal::None, internal::None,
897
+ internal::None, internal::None, internal::None, internal::None,
898
+ internal::None> {
899
+ typedef internal::Types7<T1, T2, T3, T4, T5, T6, T7> type;
900
+ };
901
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
902
+ typename T6, typename T7, typename T8>
903
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, internal::None, internal::None,
904
+ internal::None, internal::None, internal::None, internal::None,
905
+ internal::None, internal::None, internal::None, internal::None,
906
+ internal::None, internal::None, internal::None, internal::None,
907
+ internal::None, internal::None, internal::None, internal::None,
908
+ internal::None, internal::None, internal::None, internal::None,
909
+ internal::None, internal::None, internal::None, internal::None,
910
+ internal::None, internal::None, internal::None, internal::None,
911
+ internal::None, internal::None, internal::None, internal::None,
912
+ internal::None, internal::None, internal::None, internal::None,
913
+ internal::None, internal::None, internal::None, internal::None> {
914
+ typedef internal::Types8<T1, T2, T3, T4, T5, T6, T7, T8> type;
915
+ };
916
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
917
+ typename T6, typename T7, typename T8, typename T9>
918
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, internal::None,
919
+ internal::None, internal::None, internal::None, internal::None,
920
+ internal::None, internal::None, internal::None, internal::None,
921
+ internal::None, internal::None, internal::None, internal::None,
922
+ internal::None, internal::None, internal::None, internal::None,
923
+ internal::None, internal::None, internal::None, internal::None,
924
+ internal::None, internal::None, internal::None, internal::None,
925
+ internal::None, internal::None, internal::None, internal::None,
926
+ internal::None, internal::None, internal::None, internal::None,
927
+ internal::None, internal::None, internal::None, internal::None,
928
+ internal::None, internal::None, internal::None, internal::None> {
929
+ typedef internal::Types9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
930
+ };
931
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
932
+ typename T6, typename T7, typename T8, typename T9, typename T10>
933
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, internal::None,
934
+ internal::None, internal::None, internal::None, internal::None,
935
+ internal::None, internal::None, internal::None, internal::None,
936
+ internal::None, internal::None, internal::None, internal::None,
937
+ internal::None, internal::None, internal::None, internal::None,
938
+ internal::None, internal::None, internal::None, internal::None,
939
+ internal::None, internal::None, internal::None, internal::None,
940
+ internal::None, internal::None, internal::None, internal::None,
941
+ internal::None, internal::None, internal::None, internal::None,
942
+ internal::None, internal::None, internal::None, internal::None,
943
+ internal::None, internal::None, internal::None> {
944
+ typedef internal::Types10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
945
+ };
946
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
947
+ typename T6, typename T7, typename T8, typename T9, typename T10,
948
+ typename T11>
949
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, internal::None,
950
+ internal::None, internal::None, internal::None, internal::None,
951
+ internal::None, internal::None, internal::None, internal::None,
952
+ internal::None, internal::None, internal::None, internal::None,
953
+ internal::None, internal::None, internal::None, internal::None,
954
+ internal::None, internal::None, internal::None, internal::None,
955
+ internal::None, internal::None, internal::None, internal::None,
956
+ internal::None, internal::None, internal::None, internal::None,
957
+ internal::None, internal::None, internal::None, internal::None,
958
+ internal::None, internal::None, internal::None, internal::None,
959
+ internal::None, internal::None> {
960
+ typedef internal::Types11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
961
+ };
962
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
963
+ typename T6, typename T7, typename T8, typename T9, typename T10,
964
+ typename T11, typename T12>
965
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, internal::None,
966
+ internal::None, internal::None, internal::None, internal::None,
967
+ internal::None, internal::None, internal::None, internal::None,
968
+ internal::None, internal::None, internal::None, internal::None,
969
+ internal::None, internal::None, internal::None, internal::None,
970
+ internal::None, internal::None, internal::None, internal::None,
971
+ internal::None, internal::None, internal::None, internal::None,
972
+ internal::None, internal::None, internal::None, internal::None,
973
+ internal::None, internal::None, internal::None, internal::None,
974
+ internal::None, internal::None, internal::None, internal::None,
975
+ internal::None> {
976
+ typedef internal::Types12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
977
+ T12> type;
978
+ };
979
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
980
+ typename T6, typename T7, typename T8, typename T9, typename T10,
981
+ typename T11, typename T12, typename T13>
982
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
983
+ internal::None, internal::None, internal::None, internal::None,
984
+ internal::None, internal::None, internal::None, internal::None,
985
+ internal::None, internal::None, internal::None, internal::None,
986
+ internal::None, internal::None, internal::None, internal::None,
987
+ internal::None, internal::None, internal::None, internal::None,
988
+ internal::None, internal::None, internal::None, internal::None,
989
+ internal::None, internal::None, internal::None, internal::None,
990
+ internal::None, internal::None, internal::None, internal::None,
991
+ internal::None, internal::None, internal::None, internal::None,
992
+ internal::None> {
993
+ typedef internal::Types13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
994
+ T13> type;
995
+ };
996
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
997
+ typename T6, typename T7, typename T8, typename T9, typename T10,
998
+ typename T11, typename T12, typename T13, typename T14>
999
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1000
+ internal::None, internal::None, internal::None, internal::None,
1001
+ internal::None, internal::None, internal::None, internal::None,
1002
+ internal::None, internal::None, internal::None, internal::None,
1003
+ internal::None, internal::None, internal::None, internal::None,
1004
+ internal::None, internal::None, internal::None, internal::None,
1005
+ internal::None, internal::None, internal::None, internal::None,
1006
+ internal::None, internal::None, internal::None, internal::None,
1007
+ internal::None, internal::None, internal::None, internal::None,
1008
+ internal::None, internal::None, internal::None, internal::None> {
1009
+ typedef internal::Types14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1010
+ T13, T14> type;
1011
+ };
1012
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1013
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1014
+ typename T11, typename T12, typename T13, typename T14, typename T15>
1015
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1016
+ internal::None, internal::None, internal::None, internal::None,
1017
+ internal::None, internal::None, internal::None, internal::None,
1018
+ internal::None, internal::None, internal::None, internal::None,
1019
+ internal::None, internal::None, internal::None, internal::None,
1020
+ internal::None, internal::None, internal::None, internal::None,
1021
+ internal::None, internal::None, internal::None, internal::None,
1022
+ internal::None, internal::None, internal::None, internal::None,
1023
+ internal::None, internal::None, internal::None, internal::None,
1024
+ internal::None, internal::None, internal::None> {
1025
+ typedef internal::Types15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1026
+ T13, T14, T15> type;
1027
+ };
1028
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1029
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1030
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1031
+ typename T16>
1032
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1033
+ T16, internal::None, internal::None, internal::None, internal::None,
1034
+ internal::None, internal::None, internal::None, internal::None,
1035
+ internal::None, internal::None, internal::None, internal::None,
1036
+ internal::None, internal::None, internal::None, internal::None,
1037
+ internal::None, internal::None, internal::None, internal::None,
1038
+ internal::None, internal::None, internal::None, internal::None,
1039
+ internal::None, internal::None, internal::None, internal::None,
1040
+ internal::None, internal::None, internal::None, internal::None,
1041
+ internal::None, internal::None> {
1042
+ typedef internal::Types16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1043
+ T13, T14, T15, T16> type;
1044
+ };
1045
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1046
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1047
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1048
+ typename T16, typename T17>
1049
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1050
+ T16, T17, internal::None, internal::None, internal::None, internal::None,
1051
+ internal::None, internal::None, internal::None, internal::None,
1052
+ internal::None, internal::None, internal::None, internal::None,
1053
+ internal::None, internal::None, internal::None, internal::None,
1054
+ internal::None, internal::None, internal::None, internal::None,
1055
+ internal::None, internal::None, internal::None, internal::None,
1056
+ internal::None, internal::None, internal::None, internal::None,
1057
+ internal::None, internal::None, internal::None, internal::None,
1058
+ internal::None> {
1059
+ typedef internal::Types17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1060
+ T13, T14, T15, T16, T17> type;
1061
+ };
1062
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1063
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1064
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1065
+ typename T16, typename T17, typename T18>
1066
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1067
+ T16, T17, T18, internal::None, internal::None, internal::None,
1068
+ internal::None, internal::None, internal::None, internal::None,
1069
+ internal::None, internal::None, internal::None, internal::None,
1070
+ internal::None, internal::None, internal::None, internal::None,
1071
+ internal::None, internal::None, internal::None, internal::None,
1072
+ internal::None, internal::None, internal::None, internal::None,
1073
+ internal::None, internal::None, internal::None, internal::None,
1074
+ internal::None, internal::None, internal::None, internal::None,
1075
+ internal::None> {
1076
+ typedef internal::Types18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1077
+ T13, T14, T15, T16, T17, T18> type;
1078
+ };
1079
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1080
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1081
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1082
+ typename T16, typename T17, typename T18, typename T19>
1083
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1084
+ T16, T17, T18, T19, internal::None, internal::None, internal::None,
1085
+ internal::None, internal::None, internal::None, internal::None,
1086
+ internal::None, internal::None, internal::None, internal::None,
1087
+ internal::None, internal::None, internal::None, internal::None,
1088
+ internal::None, internal::None, internal::None, internal::None,
1089
+ internal::None, internal::None, internal::None, internal::None,
1090
+ internal::None, internal::None, internal::None, internal::None,
1091
+ internal::None, internal::None, internal::None, internal::None> {
1092
+ typedef internal::Types19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1093
+ T13, T14, T15, T16, T17, T18, T19> type;
1094
+ };
1095
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1096
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1097
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1098
+ typename T16, typename T17, typename T18, typename T19, typename T20>
1099
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1100
+ T16, T17, T18, T19, T20, internal::None, internal::None, internal::None,
1101
+ internal::None, internal::None, internal::None, internal::None,
1102
+ internal::None, internal::None, internal::None, internal::None,
1103
+ internal::None, internal::None, internal::None, internal::None,
1104
+ internal::None, internal::None, internal::None, internal::None,
1105
+ internal::None, internal::None, internal::None, internal::None,
1106
+ internal::None, internal::None, internal::None, internal::None,
1107
+ internal::None, internal::None, internal::None> {
1108
+ typedef internal::Types20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1109
+ T13, T14, T15, T16, T17, T18, T19, T20> type;
1110
+ };
1111
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1112
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1113
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1114
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1115
+ typename T21>
1116
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1117
+ T16, T17, T18, T19, T20, T21, internal::None, internal::None,
1118
+ internal::None, internal::None, internal::None, internal::None,
1119
+ internal::None, internal::None, internal::None, internal::None,
1120
+ internal::None, internal::None, internal::None, internal::None,
1121
+ internal::None, internal::None, internal::None, internal::None,
1122
+ internal::None, internal::None, internal::None, internal::None,
1123
+ internal::None, internal::None, internal::None, internal::None,
1124
+ internal::None, internal::None, internal::None> {
1125
+ typedef internal::Types21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1126
+ T13, T14, T15, T16, T17, T18, T19, T20, T21> type;
1127
+ };
1128
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1129
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1130
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1131
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1132
+ typename T21, typename T22>
1133
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1134
+ T16, T17, T18, T19, T20, T21, T22, internal::None, internal::None,
1135
+ internal::None, internal::None, internal::None, internal::None,
1136
+ internal::None, internal::None, internal::None, internal::None,
1137
+ internal::None, internal::None, internal::None, internal::None,
1138
+ internal::None, internal::None, internal::None, internal::None,
1139
+ internal::None, internal::None, internal::None, internal::None,
1140
+ internal::None, internal::None, internal::None, internal::None,
1141
+ internal::None, internal::None> {
1142
+ typedef internal::Types22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1143
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
1144
+ };
1145
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1146
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1147
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1148
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1149
+ typename T21, typename T22, typename T23>
1150
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1151
+ T16, T17, T18, T19, T20, T21, T22, T23, internal::None, internal::None,
1152
+ internal::None, internal::None, internal::None, internal::None,
1153
+ internal::None, internal::None, internal::None, internal::None,
1154
+ internal::None, internal::None, internal::None, internal::None,
1155
+ internal::None, internal::None, internal::None, internal::None,
1156
+ internal::None, internal::None, internal::None, internal::None,
1157
+ internal::None, internal::None, internal::None, internal::None,
1158
+ internal::None> {
1159
+ typedef internal::Types23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1160
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
1161
+ };
1162
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1163
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1164
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1165
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1166
+ typename T21, typename T22, typename T23, typename T24>
1167
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1168
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, internal::None,
1169
+ internal::None, internal::None, internal::None, internal::None,
1170
+ internal::None, internal::None, internal::None, internal::None,
1171
+ internal::None, internal::None, internal::None, internal::None,
1172
+ internal::None, internal::None, internal::None, internal::None,
1173
+ internal::None, internal::None, internal::None, internal::None,
1174
+ internal::None, internal::None, internal::None, internal::None,
1175
+ internal::None> {
1176
+ typedef internal::Types24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1177
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
1178
+ };
1179
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1180
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1181
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1182
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1183
+ typename T21, typename T22, typename T23, typename T24, typename T25>
1184
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1185
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, internal::None,
1186
+ internal::None, internal::None, internal::None, internal::None,
1187
+ internal::None, internal::None, internal::None, internal::None,
1188
+ internal::None, internal::None, internal::None, internal::None,
1189
+ internal::None, internal::None, internal::None, internal::None,
1190
+ internal::None, internal::None, internal::None, internal::None,
1191
+ internal::None, internal::None, internal::None, internal::None> {
1192
+ typedef internal::Types25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1193
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
1194
+ };
1195
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1196
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1197
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1198
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1199
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1200
+ typename T26>
1201
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1202
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, internal::None,
1203
+ internal::None, internal::None, internal::None, internal::None,
1204
+ internal::None, internal::None, internal::None, internal::None,
1205
+ internal::None, internal::None, internal::None, internal::None,
1206
+ internal::None, internal::None, internal::None, internal::None,
1207
+ internal::None, internal::None, internal::None, internal::None,
1208
+ internal::None, internal::None, internal::None> {
1209
+ typedef internal::Types26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1210
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1211
+ T26> type;
1212
+ };
1213
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1214
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1215
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1216
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1217
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1218
+ typename T26, typename T27>
1219
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1220
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, internal::None,
1221
+ internal::None, internal::None, internal::None, internal::None,
1222
+ internal::None, internal::None, internal::None, internal::None,
1223
+ internal::None, internal::None, internal::None, internal::None,
1224
+ internal::None, internal::None, internal::None, internal::None,
1225
+ internal::None, internal::None, internal::None, internal::None,
1226
+ internal::None, internal::None> {
1227
+ typedef internal::Types27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1228
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1229
+ T27> type;
1230
+ };
1231
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1232
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1233
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1234
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1235
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1236
+ typename T26, typename T27, typename T28>
1237
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1238
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1239
+ internal::None, internal::None, internal::None, internal::None,
1240
+ internal::None, internal::None, internal::None, internal::None,
1241
+ internal::None, internal::None, internal::None, internal::None,
1242
+ internal::None, internal::None, internal::None, internal::None,
1243
+ internal::None, internal::None, internal::None, internal::None,
1244
+ internal::None, internal::None> {
1245
+ typedef internal::Types28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1246
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1247
+ T27, T28> type;
1248
+ };
1249
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1250
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1251
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1252
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1253
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1254
+ typename T26, typename T27, typename T28, typename T29>
1255
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1256
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
1257
+ internal::None, internal::None, internal::None, internal::None,
1258
+ internal::None, internal::None, internal::None, internal::None,
1259
+ internal::None, internal::None, internal::None, internal::None,
1260
+ internal::None, internal::None, internal::None, internal::None,
1261
+ internal::None, internal::None, internal::None, internal::None,
1262
+ internal::None> {
1263
+ typedef internal::Types29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1264
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1265
+ T27, T28, T29> type;
1266
+ };
1267
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1268
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1269
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1270
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1271
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1272
+ typename T26, typename T27, typename T28, typename T29, typename T30>
1273
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1274
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1275
+ internal::None, internal::None, internal::None, internal::None,
1276
+ internal::None, internal::None, internal::None, internal::None,
1277
+ internal::None, internal::None, internal::None, internal::None,
1278
+ internal::None, internal::None, internal::None, internal::None,
1279
+ internal::None, internal::None, internal::None, internal::None> {
1280
+ typedef internal::Types30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1281
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1282
+ T27, T28, T29, T30> type;
1283
+ };
1284
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1285
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1286
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1287
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1288
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1289
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1290
+ typename T31>
1291
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1292
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1293
+ T31, internal::None, internal::None, internal::None, internal::None,
1294
+ internal::None, internal::None, internal::None, internal::None,
1295
+ internal::None, internal::None, internal::None, internal::None,
1296
+ internal::None, internal::None, internal::None, internal::None,
1297
+ internal::None, internal::None, internal::None> {
1298
+ typedef internal::Types31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1299
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1300
+ T27, T28, T29, T30, T31> type;
1301
+ };
1302
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1303
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1304
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1305
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1306
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1307
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1308
+ typename T31, typename T32>
1309
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1310
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1311
+ T31, T32, internal::None, internal::None, internal::None, internal::None,
1312
+ internal::None, internal::None, internal::None, internal::None,
1313
+ internal::None, internal::None, internal::None, internal::None,
1314
+ internal::None, internal::None, internal::None, internal::None,
1315
+ internal::None, internal::None> {
1316
+ typedef internal::Types32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1317
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1318
+ T27, T28, T29, T30, T31, T32> type;
1319
+ };
1320
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1321
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1322
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1323
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1324
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1325
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1326
+ typename T31, typename T32, typename T33>
1327
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1328
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1329
+ T31, T32, T33, internal::None, internal::None, internal::None,
1330
+ internal::None, internal::None, internal::None, internal::None,
1331
+ internal::None, internal::None, internal::None, internal::None,
1332
+ internal::None, internal::None, internal::None, internal::None,
1333
+ internal::None, internal::None> {
1334
+ typedef internal::Types33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1335
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1336
+ T27, T28, T29, T30, T31, T32, T33> type;
1337
+ };
1338
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1339
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1340
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1341
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1342
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1343
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1344
+ typename T31, typename T32, typename T33, typename T34>
1345
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1346
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1347
+ T31, T32, T33, T34, internal::None, internal::None, internal::None,
1348
+ internal::None, internal::None, internal::None, internal::None,
1349
+ internal::None, internal::None, internal::None, internal::None,
1350
+ internal::None, internal::None, internal::None, internal::None,
1351
+ internal::None> {
1352
+ typedef internal::Types34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1353
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1354
+ T27, T28, T29, T30, T31, T32, T33, T34> type;
1355
+ };
1356
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1357
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1358
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1359
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1360
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1361
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1362
+ typename T31, typename T32, typename T33, typename T34, typename T35>
1363
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1364
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1365
+ T31, T32, T33, T34, T35, internal::None, internal::None, internal::None,
1366
+ internal::None, internal::None, internal::None, internal::None,
1367
+ internal::None, internal::None, internal::None, internal::None,
1368
+ internal::None, internal::None, internal::None, internal::None> {
1369
+ typedef internal::Types35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1370
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1371
+ T27, T28, T29, T30, T31, T32, T33, T34, T35> type;
1372
+ };
1373
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1374
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1375
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1376
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1377
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1378
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1379
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1380
+ typename T36>
1381
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1382
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1383
+ T31, T32, T33, T34, T35, T36, internal::None, internal::None,
1384
+ internal::None, internal::None, internal::None, internal::None,
1385
+ internal::None, internal::None, internal::None, internal::None,
1386
+ internal::None, internal::None, internal::None, internal::None> {
1387
+ typedef internal::Types36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1388
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1389
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
1390
+ };
1391
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1392
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1393
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1394
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1395
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1396
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1397
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1398
+ typename T36, typename T37>
1399
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1400
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1401
+ T31, T32, T33, T34, T35, T36, T37, internal::None, internal::None,
1402
+ internal::None, internal::None, internal::None, internal::None,
1403
+ internal::None, internal::None, internal::None, internal::None,
1404
+ internal::None, internal::None, internal::None> {
1405
+ typedef internal::Types37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1406
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1407
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
1408
+ };
1409
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1410
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1411
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1412
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1413
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1414
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1415
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1416
+ typename T36, typename T37, typename T38>
1417
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1418
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1419
+ T31, T32, T33, T34, T35, T36, T37, T38, internal::None, internal::None,
1420
+ internal::None, internal::None, internal::None, internal::None,
1421
+ internal::None, internal::None, internal::None, internal::None,
1422
+ internal::None, internal::None> {
1423
+ typedef internal::Types38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1424
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1425
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
1426
+ };
1427
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1428
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1429
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1430
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1431
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1432
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1433
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1434
+ typename T36, typename T37, typename T38, typename T39>
1435
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1436
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1437
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, internal::None,
1438
+ internal::None, internal::None, internal::None, internal::None,
1439
+ internal::None, internal::None, internal::None, internal::None,
1440
+ internal::None, internal::None> {
1441
+ typedef internal::Types39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1442
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1443
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
1444
+ };
1445
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1446
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1447
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1448
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1449
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1450
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1451
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1452
+ typename T36, typename T37, typename T38, typename T39, typename T40>
1453
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1454
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1455
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, internal::None,
1456
+ internal::None, internal::None, internal::None, internal::None,
1457
+ internal::None, internal::None, internal::None, internal::None,
1458
+ internal::None> {
1459
+ typedef internal::Types40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1460
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1461
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1462
+ T40> type;
1463
+ };
1464
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1465
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1466
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1467
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1468
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1469
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1470
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1471
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1472
+ typename T41>
1473
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1474
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1475
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, internal::None,
1476
+ internal::None, internal::None, internal::None, internal::None,
1477
+ internal::None, internal::None, internal::None, internal::None> {
1478
+ typedef internal::Types41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1479
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1480
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1481
+ T41> type;
1482
+ };
1483
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1484
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1485
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1486
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1487
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1488
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1489
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1490
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1491
+ typename T41, typename T42>
1492
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1493
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1494
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, internal::None,
1495
+ internal::None, internal::None, internal::None, internal::None,
1496
+ internal::None, internal::None, internal::None> {
1497
+ typedef internal::Types42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1498
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1499
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1500
+ T41, T42> type;
1501
+ };
1502
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1503
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1504
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1505
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1506
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1507
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1508
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1509
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1510
+ typename T41, typename T42, typename T43>
1511
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1512
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1513
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1514
+ internal::None, internal::None, internal::None, internal::None,
1515
+ internal::None, internal::None, internal::None> {
1516
+ typedef internal::Types43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1517
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1518
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1519
+ T41, T42, T43> type;
1520
+ };
1521
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1522
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1523
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1524
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1525
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1526
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1527
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1528
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1529
+ typename T41, typename T42, typename T43, typename T44>
1530
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1531
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1532
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
1533
+ internal::None, internal::None, internal::None, internal::None,
1534
+ internal::None, internal::None> {
1535
+ typedef internal::Types44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1536
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1537
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1538
+ T41, T42, T43, T44> type;
1539
+ };
1540
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1541
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1542
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1543
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1544
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1545
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1546
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1547
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1548
+ typename T41, typename T42, typename T43, typename T44, typename T45>
1549
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1550
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1551
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1552
+ internal::None, internal::None, internal::None, internal::None,
1553
+ internal::None> {
1554
+ typedef internal::Types45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1555
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1556
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1557
+ T41, T42, T43, T44, T45> type;
1558
+ };
1559
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1560
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1561
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1562
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1563
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1564
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1565
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1566
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1567
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1568
+ typename T46>
1569
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1570
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1571
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1572
+ T46, internal::None, internal::None, internal::None, internal::None> {
1573
+ typedef internal::Types46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1574
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1575
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1576
+ T41, T42, T43, T44, T45, T46> type;
1577
+ };
1578
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1579
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1580
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1581
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1582
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1583
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1584
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1585
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1586
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1587
+ typename T46, typename T47>
1588
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1589
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1590
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1591
+ T46, T47, internal::None, internal::None, internal::None> {
1592
+ typedef internal::Types47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1593
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1594
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1595
+ T41, T42, T43, T44, T45, T46, T47> type;
1596
+ };
1597
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1598
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1599
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1600
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1601
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1602
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1603
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1604
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1605
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1606
+ typename T46, typename T47, typename T48>
1607
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1608
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1609
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1610
+ T46, T47, T48, internal::None, internal::None> {
1611
+ typedef internal::Types48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1612
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1613
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1614
+ T41, T42, T43, T44, T45, T46, T47, T48> type;
1615
+ };
1616
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
1617
+ typename T6, typename T7, typename T8, typename T9, typename T10,
1618
+ typename T11, typename T12, typename T13, typename T14, typename T15,
1619
+ typename T16, typename T17, typename T18, typename T19, typename T20,
1620
+ typename T21, typename T22, typename T23, typename T24, typename T25,
1621
+ typename T26, typename T27, typename T28, typename T29, typename T30,
1622
+ typename T31, typename T32, typename T33, typename T34, typename T35,
1623
+ typename T36, typename T37, typename T38, typename T39, typename T40,
1624
+ typename T41, typename T42, typename T43, typename T44, typename T45,
1625
+ typename T46, typename T47, typename T48, typename T49>
1626
+ struct Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
1627
+ T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
1628
+ T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44, T45,
1629
+ T46, T47, T48, T49, internal::None> {
1630
+ typedef internal::Types49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
1631
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
1632
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
1633
+ T41, T42, T43, T44, T45, T46, T47, T48, T49> type;
1634
+ };
1635
+
1636
+ namespace internal {
1637
+
1638
+ # define GTEST_TEMPLATE_ template <typename T> class
1639
+
1640
+ // The template "selector" struct TemplateSel<Tmpl> is used to
1641
+ // represent Tmpl, which must be a class template with one type
1642
+ // parameter, as a type. TemplateSel<Tmpl>::Bind<T>::type is defined
1643
+ // as the type Tmpl<T>. This allows us to actually instantiate the
1644
+ // template "selected" by TemplateSel<Tmpl>.
1645
+ //
1646
+ // This trick is necessary for simulating typedef for class templates,
1647
+ // which C++ doesn't support directly.
1648
+ template <GTEST_TEMPLATE_ Tmpl>
1649
+ struct TemplateSel {
1650
+ template <typename T>
1651
+ struct Bind {
1652
+ typedef Tmpl<T> type;
1653
+ };
1654
+ };
1655
+
1656
+ # define GTEST_BIND_(TmplSel, T) \
1657
+ TmplSel::template Bind<T>::type
1658
+
1659
+ // A unique struct template used as the default value for the
1660
+ // arguments of class template Templates. This allows us to simulate
1661
+ // variadic templates (e.g. Templates<int>, Templates<int, double>,
1662
+ // and etc), which C++ doesn't support directly.
1663
+ template <typename T>
1664
+ struct NoneT {};
1665
+
1666
+ // The following family of struct and struct templates are used to
1667
+ // represent template lists. In particular, TemplatesN<T1, T2, ...,
1668
+ // TN> represents a list of N templates (T1, T2, ..., and TN). Except
1669
+ // for Templates0, every struct in the family has two member types:
1670
+ // Head for the selector of the first template in the list, and Tail
1671
+ // for the rest of the list.
1672
+
1673
+ // The empty template list.
1674
+ struct Templates0 {};
1675
+
1676
+ // Template lists of length 1, 2, 3, and so on.
1677
+
1678
+ template <GTEST_TEMPLATE_ T1>
1679
+ struct Templates1 {
1680
+ typedef TemplateSel<T1> Head;
1681
+ typedef Templates0 Tail;
1682
+ };
1683
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
1684
+ struct Templates2 {
1685
+ typedef TemplateSel<T1> Head;
1686
+ typedef Templates1<T2> Tail;
1687
+ };
1688
+
1689
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
1690
+ struct Templates3 {
1691
+ typedef TemplateSel<T1> Head;
1692
+ typedef Templates2<T2, T3> Tail;
1693
+ };
1694
+
1695
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1696
+ GTEST_TEMPLATE_ T4>
1697
+ struct Templates4 {
1698
+ typedef TemplateSel<T1> Head;
1699
+ typedef Templates3<T2, T3, T4> Tail;
1700
+ };
1701
+
1702
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1703
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
1704
+ struct Templates5 {
1705
+ typedef TemplateSel<T1> Head;
1706
+ typedef Templates4<T2, T3, T4, T5> Tail;
1707
+ };
1708
+
1709
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1710
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
1711
+ struct Templates6 {
1712
+ typedef TemplateSel<T1> Head;
1713
+ typedef Templates5<T2, T3, T4, T5, T6> Tail;
1714
+ };
1715
+
1716
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1717
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1718
+ GTEST_TEMPLATE_ T7>
1719
+ struct Templates7 {
1720
+ typedef TemplateSel<T1> Head;
1721
+ typedef Templates6<T2, T3, T4, T5, T6, T7> Tail;
1722
+ };
1723
+
1724
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1725
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1726
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
1727
+ struct Templates8 {
1728
+ typedef TemplateSel<T1> Head;
1729
+ typedef Templates7<T2, T3, T4, T5, T6, T7, T8> Tail;
1730
+ };
1731
+
1732
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1733
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1734
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
1735
+ struct Templates9 {
1736
+ typedef TemplateSel<T1> Head;
1737
+ typedef Templates8<T2, T3, T4, T5, T6, T7, T8, T9> Tail;
1738
+ };
1739
+
1740
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1741
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1742
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1743
+ GTEST_TEMPLATE_ T10>
1744
+ struct Templates10 {
1745
+ typedef TemplateSel<T1> Head;
1746
+ typedef Templates9<T2, T3, T4, T5, T6, T7, T8, T9, T10> Tail;
1747
+ };
1748
+
1749
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1750
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1751
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1752
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
1753
+ struct Templates11 {
1754
+ typedef TemplateSel<T1> Head;
1755
+ typedef Templates10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tail;
1756
+ };
1757
+
1758
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1759
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1760
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1761
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
1762
+ struct Templates12 {
1763
+ typedef TemplateSel<T1> Head;
1764
+ typedef Templates11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tail;
1765
+ };
1766
+
1767
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1768
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1769
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1770
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1771
+ GTEST_TEMPLATE_ T13>
1772
+ struct Templates13 {
1773
+ typedef TemplateSel<T1> Head;
1774
+ typedef Templates12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tail;
1775
+ };
1776
+
1777
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1778
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1779
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1780
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1781
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
1782
+ struct Templates14 {
1783
+ typedef TemplateSel<T1> Head;
1784
+ typedef Templates13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1785
+ T14> Tail;
1786
+ };
1787
+
1788
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1789
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1790
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1791
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1792
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
1793
+ struct Templates15 {
1794
+ typedef TemplateSel<T1> Head;
1795
+ typedef Templates14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1796
+ T15> Tail;
1797
+ };
1798
+
1799
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1800
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1801
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1802
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1803
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1804
+ GTEST_TEMPLATE_ T16>
1805
+ struct Templates16 {
1806
+ typedef TemplateSel<T1> Head;
1807
+ typedef Templates15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1808
+ T15, T16> Tail;
1809
+ };
1810
+
1811
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1812
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1813
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1814
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1815
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1816
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
1817
+ struct Templates17 {
1818
+ typedef TemplateSel<T1> Head;
1819
+ typedef Templates16<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1820
+ T15, T16, T17> Tail;
1821
+ };
1822
+
1823
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1824
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1825
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1826
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1827
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1828
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
1829
+ struct Templates18 {
1830
+ typedef TemplateSel<T1> Head;
1831
+ typedef Templates17<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1832
+ T15, T16, T17, T18> Tail;
1833
+ };
1834
+
1835
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1836
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1837
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1838
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1839
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1840
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1841
+ GTEST_TEMPLATE_ T19>
1842
+ struct Templates19 {
1843
+ typedef TemplateSel<T1> Head;
1844
+ typedef Templates18<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1845
+ T15, T16, T17, T18, T19> Tail;
1846
+ };
1847
+
1848
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1849
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1850
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1851
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1852
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1853
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1854
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
1855
+ struct Templates20 {
1856
+ typedef TemplateSel<T1> Head;
1857
+ typedef Templates19<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1858
+ T15, T16, T17, T18, T19, T20> Tail;
1859
+ };
1860
+
1861
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1862
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1863
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1864
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1865
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1866
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1867
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
1868
+ struct Templates21 {
1869
+ typedef TemplateSel<T1> Head;
1870
+ typedef Templates20<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1871
+ T15, T16, T17, T18, T19, T20, T21> Tail;
1872
+ };
1873
+
1874
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1875
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1876
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1877
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1878
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1879
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1880
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1881
+ GTEST_TEMPLATE_ T22>
1882
+ struct Templates22 {
1883
+ typedef TemplateSel<T1> Head;
1884
+ typedef Templates21<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1885
+ T15, T16, T17, T18, T19, T20, T21, T22> Tail;
1886
+ };
1887
+
1888
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1889
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1890
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1891
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1892
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1893
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1894
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1895
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
1896
+ struct Templates23 {
1897
+ typedef TemplateSel<T1> Head;
1898
+ typedef Templates22<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1899
+ T15, T16, T17, T18, T19, T20, T21, T22, T23> Tail;
1900
+ };
1901
+
1902
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1903
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1904
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1905
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1906
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1907
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1908
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1909
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
1910
+ struct Templates24 {
1911
+ typedef TemplateSel<T1> Head;
1912
+ typedef Templates23<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1913
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Tail;
1914
+ };
1915
+
1916
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1917
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1918
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1919
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1920
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1921
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1922
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1923
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1924
+ GTEST_TEMPLATE_ T25>
1925
+ struct Templates25 {
1926
+ typedef TemplateSel<T1> Head;
1927
+ typedef Templates24<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1928
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Tail;
1929
+ };
1930
+
1931
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1932
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1933
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1934
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1935
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1936
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1937
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1938
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1939
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
1940
+ struct Templates26 {
1941
+ typedef TemplateSel<T1> Head;
1942
+ typedef Templates25<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1943
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Tail;
1944
+ };
1945
+
1946
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1947
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1948
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1949
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1950
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1951
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1952
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1953
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1954
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
1955
+ struct Templates27 {
1956
+ typedef TemplateSel<T1> Head;
1957
+ typedef Templates26<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1958
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Tail;
1959
+ };
1960
+
1961
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1962
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1963
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1964
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1965
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1966
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1967
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1968
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1969
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
1970
+ GTEST_TEMPLATE_ T28>
1971
+ struct Templates28 {
1972
+ typedef TemplateSel<T1> Head;
1973
+ typedef Templates27<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1974
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
1975
+ T28> Tail;
1976
+ };
1977
+
1978
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1979
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1980
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1981
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1982
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
1983
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
1984
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
1985
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
1986
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
1987
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
1988
+ struct Templates29 {
1989
+ typedef TemplateSel<T1> Head;
1990
+ typedef Templates28<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
1991
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1992
+ T29> Tail;
1993
+ };
1994
+
1995
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
1996
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
1997
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
1998
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
1999
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2000
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2001
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2002
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2003
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2004
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
2005
+ struct Templates30 {
2006
+ typedef TemplateSel<T1> Head;
2007
+ typedef Templates29<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2008
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2009
+ T29, T30> Tail;
2010
+ };
2011
+
2012
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2013
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2014
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2015
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2016
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2017
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2018
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2019
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2020
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2021
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2022
+ GTEST_TEMPLATE_ T31>
2023
+ struct Templates31 {
2024
+ typedef TemplateSel<T1> Head;
2025
+ typedef Templates30<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2026
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2027
+ T29, T30, T31> Tail;
2028
+ };
2029
+
2030
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2031
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2032
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2033
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2034
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2035
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2036
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2037
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2038
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2039
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2040
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
2041
+ struct Templates32 {
2042
+ typedef TemplateSel<T1> Head;
2043
+ typedef Templates31<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2044
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2045
+ T29, T30, T31, T32> Tail;
2046
+ };
2047
+
2048
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2049
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2050
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2051
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2052
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2053
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2054
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2055
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2056
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2057
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2058
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
2059
+ struct Templates33 {
2060
+ typedef TemplateSel<T1> Head;
2061
+ typedef Templates32<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2062
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2063
+ T29, T30, T31, T32, T33> Tail;
2064
+ };
2065
+
2066
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2067
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2068
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2069
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2070
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2071
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2072
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2073
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2074
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2075
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2076
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2077
+ GTEST_TEMPLATE_ T34>
2078
+ struct Templates34 {
2079
+ typedef TemplateSel<T1> Head;
2080
+ typedef Templates33<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2081
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2082
+ T29, T30, T31, T32, T33, T34> Tail;
2083
+ };
2084
+
2085
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2086
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2087
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2088
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2089
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2090
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2091
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2092
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2093
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2094
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2095
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2096
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
2097
+ struct Templates35 {
2098
+ typedef TemplateSel<T1> Head;
2099
+ typedef Templates34<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2100
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2101
+ T29, T30, T31, T32, T33, T34, T35> Tail;
2102
+ };
2103
+
2104
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2105
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2106
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2107
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2108
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2109
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2110
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2111
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2112
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2113
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2114
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2115
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
2116
+ struct Templates36 {
2117
+ typedef TemplateSel<T1> Head;
2118
+ typedef Templates35<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2119
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2120
+ T29, T30, T31, T32, T33, T34, T35, T36> Tail;
2121
+ };
2122
+
2123
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2124
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2125
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2126
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2127
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2128
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2129
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2130
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2131
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2132
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2133
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2134
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2135
+ GTEST_TEMPLATE_ T37>
2136
+ struct Templates37 {
2137
+ typedef TemplateSel<T1> Head;
2138
+ typedef Templates36<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2139
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2140
+ T29, T30, T31, T32, T33, T34, T35, T36, T37> Tail;
2141
+ };
2142
+
2143
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2144
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2145
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2146
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2147
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2148
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2149
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2150
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2151
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2152
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2153
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2154
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2155
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
2156
+ struct Templates38 {
2157
+ typedef TemplateSel<T1> Head;
2158
+ typedef Templates37<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2159
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2160
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Tail;
2161
+ };
2162
+
2163
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2164
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2165
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2166
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2167
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2168
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2169
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2170
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2171
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2172
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2173
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2174
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2175
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
2176
+ struct Templates39 {
2177
+ typedef TemplateSel<T1> Head;
2178
+ typedef Templates38<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2179
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2180
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Tail;
2181
+ };
2182
+
2183
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2184
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2185
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2186
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2187
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2188
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2189
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2190
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2191
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2192
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2193
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2194
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2195
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2196
+ GTEST_TEMPLATE_ T40>
2197
+ struct Templates40 {
2198
+ typedef TemplateSel<T1> Head;
2199
+ typedef Templates39<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2200
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2201
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Tail;
2202
+ };
2203
+
2204
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2205
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2206
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2207
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2208
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2209
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2210
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2211
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2212
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2213
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2214
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2215
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2216
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2217
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
2218
+ struct Templates41 {
2219
+ typedef TemplateSel<T1> Head;
2220
+ typedef Templates40<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2221
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2222
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41> Tail;
2223
+ };
2224
+
2225
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2226
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2227
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2228
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2229
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2230
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2231
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2232
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2233
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2234
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2235
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2236
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2237
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2238
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
2239
+ struct Templates42 {
2240
+ typedef TemplateSel<T1> Head;
2241
+ typedef Templates41<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2242
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2243
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
2244
+ T42> Tail;
2245
+ };
2246
+
2247
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2248
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2249
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2250
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2251
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2252
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2253
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2254
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2255
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2256
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2257
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2258
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2259
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2260
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2261
+ GTEST_TEMPLATE_ T43>
2262
+ struct Templates43 {
2263
+ typedef TemplateSel<T1> Head;
2264
+ typedef Templates42<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2265
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2266
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2267
+ T43> Tail;
2268
+ };
2269
+
2270
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2271
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2272
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2273
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2274
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2275
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2276
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2277
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2278
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2279
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2280
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2281
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2282
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2283
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2284
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
2285
+ struct Templates44 {
2286
+ typedef TemplateSel<T1> Head;
2287
+ typedef Templates43<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2288
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2289
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2290
+ T43, T44> Tail;
2291
+ };
2292
+
2293
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2294
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2295
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2296
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2297
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2298
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2299
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2300
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2301
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2302
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2303
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2304
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2305
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2306
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2307
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
2308
+ struct Templates45 {
2309
+ typedef TemplateSel<T1> Head;
2310
+ typedef Templates44<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2311
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2312
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2313
+ T43, T44, T45> Tail;
2314
+ };
2315
+
2316
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2317
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2318
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2319
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2320
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2321
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2322
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2323
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2324
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2325
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2326
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2327
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2328
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2329
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2330
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2331
+ GTEST_TEMPLATE_ T46>
2332
+ struct Templates46 {
2333
+ typedef TemplateSel<T1> Head;
2334
+ typedef Templates45<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2335
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2336
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2337
+ T43, T44, T45, T46> Tail;
2338
+ };
2339
+
2340
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2341
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2342
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2343
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2344
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2345
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2346
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2347
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2348
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2349
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2350
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2351
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2352
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2353
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2354
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2355
+ GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
2356
+ struct Templates47 {
2357
+ typedef TemplateSel<T1> Head;
2358
+ typedef Templates46<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2359
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2360
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2361
+ T43, T44, T45, T46, T47> Tail;
2362
+ };
2363
+
2364
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2365
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2366
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2367
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2368
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2369
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2370
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2371
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2372
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2373
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2374
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2375
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2376
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2377
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2378
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2379
+ GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
2380
+ struct Templates48 {
2381
+ typedef TemplateSel<T1> Head;
2382
+ typedef Templates47<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2383
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2384
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2385
+ T43, T44, T45, T46, T47, T48> Tail;
2386
+ };
2387
+
2388
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2389
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2390
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2391
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2392
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2393
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2394
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2395
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2396
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2397
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2398
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2399
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2400
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2401
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2402
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2403
+ GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
2404
+ GTEST_TEMPLATE_ T49>
2405
+ struct Templates49 {
2406
+ typedef TemplateSel<T1> Head;
2407
+ typedef Templates48<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2408
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2409
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2410
+ T43, T44, T45, T46, T47, T48, T49> Tail;
2411
+ };
2412
+
2413
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2414
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2415
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2416
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2417
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2418
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2419
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2420
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2421
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2422
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2423
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2424
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
2425
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
2426
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
2427
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
2428
+ GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
2429
+ GTEST_TEMPLATE_ T49, GTEST_TEMPLATE_ T50>
2430
+ struct Templates50 {
2431
+ typedef TemplateSel<T1> Head;
2432
+ typedef Templates49<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2433
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2434
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
2435
+ T43, T44, T45, T46, T47, T48, T49, T50> Tail;
2436
+ };
2437
+
2438
+
2439
+ // We don't want to require the users to write TemplatesN<...> directly,
2440
+ // as that would require them to count the length. Templates<...> is much
2441
+ // easier to write, but generates horrible messages when there is a
2442
+ // compiler error, as gcc insists on printing out each template
2443
+ // argument, even if it has the default value (this means Templates<list>
2444
+ // will appear as Templates<list, NoneT, NoneT, ..., NoneT> in the compiler
2445
+ // errors).
2446
+ //
2447
+ // Our solution is to combine the best part of the two approaches: a
2448
+ // user would write Templates<T1, ..., TN>, and Google Test will translate
2449
+ // that to TemplatesN<T1, ..., TN> internally to make error messages
2450
+ // readable. The translation is done by the 'type' member of the
2451
+ // Templates template.
2452
+ template <GTEST_TEMPLATE_ T1 = NoneT, GTEST_TEMPLATE_ T2 = NoneT,
2453
+ GTEST_TEMPLATE_ T3 = NoneT, GTEST_TEMPLATE_ T4 = NoneT,
2454
+ GTEST_TEMPLATE_ T5 = NoneT, GTEST_TEMPLATE_ T6 = NoneT,
2455
+ GTEST_TEMPLATE_ T7 = NoneT, GTEST_TEMPLATE_ T8 = NoneT,
2456
+ GTEST_TEMPLATE_ T9 = NoneT, GTEST_TEMPLATE_ T10 = NoneT,
2457
+ GTEST_TEMPLATE_ T11 = NoneT, GTEST_TEMPLATE_ T12 = NoneT,
2458
+ GTEST_TEMPLATE_ T13 = NoneT, GTEST_TEMPLATE_ T14 = NoneT,
2459
+ GTEST_TEMPLATE_ T15 = NoneT, GTEST_TEMPLATE_ T16 = NoneT,
2460
+ GTEST_TEMPLATE_ T17 = NoneT, GTEST_TEMPLATE_ T18 = NoneT,
2461
+ GTEST_TEMPLATE_ T19 = NoneT, GTEST_TEMPLATE_ T20 = NoneT,
2462
+ GTEST_TEMPLATE_ T21 = NoneT, GTEST_TEMPLATE_ T22 = NoneT,
2463
+ GTEST_TEMPLATE_ T23 = NoneT, GTEST_TEMPLATE_ T24 = NoneT,
2464
+ GTEST_TEMPLATE_ T25 = NoneT, GTEST_TEMPLATE_ T26 = NoneT,
2465
+ GTEST_TEMPLATE_ T27 = NoneT, GTEST_TEMPLATE_ T28 = NoneT,
2466
+ GTEST_TEMPLATE_ T29 = NoneT, GTEST_TEMPLATE_ T30 = NoneT,
2467
+ GTEST_TEMPLATE_ T31 = NoneT, GTEST_TEMPLATE_ T32 = NoneT,
2468
+ GTEST_TEMPLATE_ T33 = NoneT, GTEST_TEMPLATE_ T34 = NoneT,
2469
+ GTEST_TEMPLATE_ T35 = NoneT, GTEST_TEMPLATE_ T36 = NoneT,
2470
+ GTEST_TEMPLATE_ T37 = NoneT, GTEST_TEMPLATE_ T38 = NoneT,
2471
+ GTEST_TEMPLATE_ T39 = NoneT, GTEST_TEMPLATE_ T40 = NoneT,
2472
+ GTEST_TEMPLATE_ T41 = NoneT, GTEST_TEMPLATE_ T42 = NoneT,
2473
+ GTEST_TEMPLATE_ T43 = NoneT, GTEST_TEMPLATE_ T44 = NoneT,
2474
+ GTEST_TEMPLATE_ T45 = NoneT, GTEST_TEMPLATE_ T46 = NoneT,
2475
+ GTEST_TEMPLATE_ T47 = NoneT, GTEST_TEMPLATE_ T48 = NoneT,
2476
+ GTEST_TEMPLATE_ T49 = NoneT, GTEST_TEMPLATE_ T50 = NoneT>
2477
+ struct Templates {
2478
+ typedef Templates50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2479
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2480
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
2481
+ T42, T43, T44, T45, T46, T47, T48, T49, T50> type;
2482
+ };
2483
+
2484
+ template <>
2485
+ struct Templates<NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2486
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2487
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2488
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2489
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2490
+ NoneT> {
2491
+ typedef Templates0 type;
2492
+ };
2493
+ template <GTEST_TEMPLATE_ T1>
2494
+ struct Templates<T1, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2495
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2496
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2497
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2498
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2499
+ NoneT> {
2500
+ typedef Templates1<T1> type;
2501
+ };
2502
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2>
2503
+ struct Templates<T1, T2, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2504
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2505
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2506
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2507
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2508
+ NoneT> {
2509
+ typedef Templates2<T1, T2> type;
2510
+ };
2511
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3>
2512
+ struct Templates<T1, T2, T3, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2513
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2514
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2515
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2516
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2517
+ typedef Templates3<T1, T2, T3> type;
2518
+ };
2519
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2520
+ GTEST_TEMPLATE_ T4>
2521
+ struct Templates<T1, T2, T3, T4, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2522
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2523
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2524
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2525
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2526
+ typedef Templates4<T1, T2, T3, T4> type;
2527
+ };
2528
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2529
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5>
2530
+ struct Templates<T1, T2, T3, T4, T5, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2531
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2532
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2533
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2534
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2535
+ typedef Templates5<T1, T2, T3, T4, T5> type;
2536
+ };
2537
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2538
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6>
2539
+ struct Templates<T1, T2, T3, T4, T5, T6, NoneT, NoneT, NoneT, NoneT, NoneT,
2540
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2541
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2542
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2543
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2544
+ typedef Templates6<T1, T2, T3, T4, T5, T6> type;
2545
+ };
2546
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2547
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2548
+ GTEST_TEMPLATE_ T7>
2549
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, NoneT, NoneT, NoneT, NoneT, NoneT,
2550
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2551
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2552
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2553
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2554
+ typedef Templates7<T1, T2, T3, T4, T5, T6, T7> type;
2555
+ };
2556
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2557
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2558
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8>
2559
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, NoneT, NoneT, NoneT, NoneT,
2560
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2561
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2562
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2563
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2564
+ typedef Templates8<T1, T2, T3, T4, T5, T6, T7, T8> type;
2565
+ };
2566
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2567
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2568
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9>
2569
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, NoneT, NoneT, NoneT,
2570
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2571
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2572
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2573
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2574
+ typedef Templates9<T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
2575
+ };
2576
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2577
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2578
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2579
+ GTEST_TEMPLATE_ T10>
2580
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, NoneT, NoneT, NoneT,
2581
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2582
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2583
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2584
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2585
+ typedef Templates10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type;
2586
+ };
2587
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2588
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2589
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2590
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11>
2591
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, NoneT, NoneT,
2592
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2593
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2594
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2595
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2596
+ typedef Templates11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type;
2597
+ };
2598
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2599
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2600
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2601
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12>
2602
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, NoneT,
2603
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2604
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2605
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2606
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2607
+ typedef Templates12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type;
2608
+ };
2609
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2610
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2611
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2612
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2613
+ GTEST_TEMPLATE_ T13>
2614
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, NoneT,
2615
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2616
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2617
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2618
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2619
+ typedef Templates13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
2620
+ T13> type;
2621
+ };
2622
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2623
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2624
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2625
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2626
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14>
2627
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2628
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2629
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2630
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2631
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2632
+ typedef Templates14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2633
+ T14> type;
2634
+ };
2635
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2636
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2637
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2638
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2639
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15>
2640
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2641
+ T15, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2642
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2643
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2644
+ NoneT, NoneT, NoneT, NoneT, NoneT> {
2645
+ typedef Templates15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2646
+ T14, T15> type;
2647
+ };
2648
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2649
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2650
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2651
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2652
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2653
+ GTEST_TEMPLATE_ T16>
2654
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2655
+ T15, T16, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2656
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2657
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2658
+ NoneT, NoneT, NoneT, NoneT, NoneT> {
2659
+ typedef Templates16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2660
+ T14, T15, T16> type;
2661
+ };
2662
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2663
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2664
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2665
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2666
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2667
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17>
2668
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2669
+ T15, T16, T17, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2670
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2671
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2672
+ NoneT, NoneT, NoneT, NoneT, NoneT> {
2673
+ typedef Templates17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2674
+ T14, T15, T16, T17> type;
2675
+ };
2676
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2677
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2678
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2679
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2680
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2681
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18>
2682
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2683
+ T15, T16, T17, T18, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2684
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2685
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2686
+ NoneT, NoneT, NoneT, NoneT> {
2687
+ typedef Templates18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2688
+ T14, T15, T16, T17, T18> type;
2689
+ };
2690
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2691
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2692
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2693
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2694
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2695
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2696
+ GTEST_TEMPLATE_ T19>
2697
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2698
+ T15, T16, T17, T18, T19, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2699
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2700
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2701
+ NoneT, NoneT, NoneT, NoneT> {
2702
+ typedef Templates19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2703
+ T14, T15, T16, T17, T18, T19> type;
2704
+ };
2705
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2706
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2707
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2708
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2709
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2710
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2711
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20>
2712
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2713
+ T15, T16, T17, T18, T19, T20, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2714
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2715
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2716
+ NoneT, NoneT, NoneT, NoneT> {
2717
+ typedef Templates20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2718
+ T14, T15, T16, T17, T18, T19, T20> type;
2719
+ };
2720
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2721
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2722
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2723
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2724
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2725
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2726
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21>
2727
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2728
+ T15, T16, T17, T18, T19, T20, T21, NoneT, NoneT, NoneT, NoneT, NoneT,
2729
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2730
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2731
+ NoneT, NoneT, NoneT, NoneT> {
2732
+ typedef Templates21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2733
+ T14, T15, T16, T17, T18, T19, T20, T21> type;
2734
+ };
2735
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2736
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2737
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2738
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2739
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2740
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2741
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2742
+ GTEST_TEMPLATE_ T22>
2743
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2744
+ T15, T16, T17, T18, T19, T20, T21, T22, NoneT, NoneT, NoneT, NoneT, NoneT,
2745
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2746
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2747
+ NoneT, NoneT, NoneT> {
2748
+ typedef Templates22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2749
+ T14, T15, T16, T17, T18, T19, T20, T21, T22> type;
2750
+ };
2751
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2752
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2753
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2754
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2755
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2756
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2757
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2758
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23>
2759
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2760
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, NoneT, NoneT, NoneT, NoneT,
2761
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2762
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2763
+ NoneT, NoneT, NoneT> {
2764
+ typedef Templates23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2765
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> type;
2766
+ };
2767
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2768
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2769
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2770
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2771
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2772
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2773
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2774
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24>
2775
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2776
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, NoneT, NoneT, NoneT,
2777
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2778
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2779
+ NoneT, NoneT, NoneT> {
2780
+ typedef Templates24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2781
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> type;
2782
+ };
2783
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2784
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2785
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2786
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2787
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2788
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2789
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2790
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2791
+ GTEST_TEMPLATE_ T25>
2792
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2793
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, NoneT, NoneT, NoneT,
2794
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2795
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2796
+ NoneT, NoneT> {
2797
+ typedef Templates25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2798
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> type;
2799
+ };
2800
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2801
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2802
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2803
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2804
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2805
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2806
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2807
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2808
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26>
2809
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2810
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, NoneT, NoneT,
2811
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2812
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2813
+ NoneT, NoneT> {
2814
+ typedef Templates26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2815
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> type;
2816
+ };
2817
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2818
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2819
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2820
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2821
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2822
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2823
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2824
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2825
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27>
2826
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2827
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, NoneT,
2828
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2829
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2830
+ NoneT, NoneT> {
2831
+ typedef Templates27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2832
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
2833
+ T27> type;
2834
+ };
2835
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2836
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2837
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2838
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2839
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2840
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2841
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2842
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2843
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2844
+ GTEST_TEMPLATE_ T28>
2845
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2846
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
2847
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2848
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2849
+ NoneT, NoneT> {
2850
+ typedef Templates28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2851
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2852
+ T28> type;
2853
+ };
2854
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2855
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2856
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2857
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2858
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2859
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2860
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2861
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2862
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2863
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29>
2864
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2865
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2866
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2867
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2868
+ NoneT> {
2869
+ typedef Templates29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2870
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2871
+ T28, T29> type;
2872
+ };
2873
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2874
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2875
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2876
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2877
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2878
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2879
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2880
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2881
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2882
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30>
2883
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2884
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2885
+ T30, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2886
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2887
+ typedef Templates30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2888
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2889
+ T28, T29, T30> type;
2890
+ };
2891
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2892
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2893
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2894
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2895
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2896
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2897
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2898
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2899
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2900
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2901
+ GTEST_TEMPLATE_ T31>
2902
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2903
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2904
+ T30, T31, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2905
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2906
+ typedef Templates31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2907
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2908
+ T28, T29, T30, T31> type;
2909
+ };
2910
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2911
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2912
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2913
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2914
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2915
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2916
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2917
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2918
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2919
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2920
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32>
2921
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2922
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2923
+ T30, T31, T32, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2924
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2925
+ typedef Templates32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2926
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2927
+ T28, T29, T30, T31, T32> type;
2928
+ };
2929
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2930
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2931
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2932
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2933
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2934
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2935
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2936
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2937
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2938
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2939
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33>
2940
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2941
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2942
+ T30, T31, T32, T33, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2943
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2944
+ typedef Templates33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2945
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2946
+ T28, T29, T30, T31, T32, T33> type;
2947
+ };
2948
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2949
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2950
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2951
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2952
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2953
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2954
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2955
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2956
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2957
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2958
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2959
+ GTEST_TEMPLATE_ T34>
2960
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2961
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2962
+ T30, T31, T32, T33, T34, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2963
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2964
+ typedef Templates34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2965
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2966
+ T28, T29, T30, T31, T32, T33, T34> type;
2967
+ };
2968
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2969
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2970
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2971
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2972
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2973
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2974
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2975
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2976
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2977
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2978
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2979
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35>
2980
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
2981
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
2982
+ T30, T31, T32, T33, T34, T35, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT,
2983
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
2984
+ typedef Templates35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
2985
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
2986
+ T28, T29, T30, T31, T32, T33, T34, T35> type;
2987
+ };
2988
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
2989
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
2990
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
2991
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
2992
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
2993
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
2994
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
2995
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
2996
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
2997
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
2998
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
2999
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36>
3000
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3001
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3002
+ T30, T31, T32, T33, T34, T35, T36, NoneT, NoneT, NoneT, NoneT, NoneT,
3003
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3004
+ typedef Templates36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3005
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3006
+ T28, T29, T30, T31, T32, T33, T34, T35, T36> type;
3007
+ };
3008
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3009
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3010
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3011
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3012
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3013
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3014
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3015
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3016
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3017
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3018
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3019
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3020
+ GTEST_TEMPLATE_ T37>
3021
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3022
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3023
+ T30, T31, T32, T33, T34, T35, T36, T37, NoneT, NoneT, NoneT, NoneT, NoneT,
3024
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3025
+ typedef Templates37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3026
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3027
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37> type;
3028
+ };
3029
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3030
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3031
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3032
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3033
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3034
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3035
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3036
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3037
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3038
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3039
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3040
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3041
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38>
3042
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3043
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3044
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, NoneT, NoneT, NoneT, NoneT,
3045
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3046
+ typedef Templates38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3047
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3048
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> type;
3049
+ };
3050
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3051
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3052
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3053
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3054
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3055
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3056
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3057
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3058
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3059
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3060
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3061
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3062
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39>
3063
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3064
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3065
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, NoneT, NoneT, NoneT,
3066
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3067
+ typedef Templates39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3068
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3069
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> type;
3070
+ };
3071
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3072
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3073
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3074
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3075
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3076
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3077
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3078
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3079
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3080
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3081
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3082
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3083
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3084
+ GTEST_TEMPLATE_ T40>
3085
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3086
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3087
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, NoneT, NoneT, NoneT,
3088
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3089
+ typedef Templates40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3090
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3091
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> type;
3092
+ };
3093
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3094
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3095
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3096
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3097
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3098
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3099
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3100
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3101
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3102
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3103
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3104
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3105
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3106
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41>
3107
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3108
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3109
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, NoneT, NoneT,
3110
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3111
+ typedef Templates41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3112
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3113
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
3114
+ T41> type;
3115
+ };
3116
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3117
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3118
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3119
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3120
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3121
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3122
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3123
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3124
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3125
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3126
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3127
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3128
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3129
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42>
3130
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3131
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3132
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, NoneT,
3133
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3134
+ typedef Templates42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3135
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3136
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3137
+ T42> type;
3138
+ };
3139
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3140
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3141
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3142
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3143
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3144
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3145
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3146
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3147
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3148
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3149
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3150
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3151
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3152
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3153
+ GTEST_TEMPLATE_ T43>
3154
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3155
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3156
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
3157
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3158
+ typedef Templates43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3159
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3160
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3161
+ T42, T43> type;
3162
+ };
3163
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3164
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3165
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3166
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3167
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3168
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3169
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3170
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3171
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3172
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3173
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3174
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3175
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3176
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3177
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44>
3178
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3179
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3180
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3181
+ NoneT, NoneT, NoneT, NoneT, NoneT, NoneT> {
3182
+ typedef Templates44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3183
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3184
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3185
+ T42, T43, T44> type;
3186
+ };
3187
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3188
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3189
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3190
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3191
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3192
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3193
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3194
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3195
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3196
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3197
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3198
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3199
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3200
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3201
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45>
3202
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3203
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3204
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3205
+ T45, NoneT, NoneT, NoneT, NoneT, NoneT> {
3206
+ typedef Templates45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3207
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3208
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3209
+ T42, T43, T44, T45> type;
3210
+ };
3211
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3212
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3213
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3214
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3215
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3216
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3217
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3218
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3219
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3220
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3221
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3222
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3223
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3224
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3225
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3226
+ GTEST_TEMPLATE_ T46>
3227
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3228
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3229
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3230
+ T45, T46, NoneT, NoneT, NoneT, NoneT> {
3231
+ typedef Templates46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3232
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3233
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3234
+ T42, T43, T44, T45, T46> type;
3235
+ };
3236
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3237
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3238
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3239
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3240
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3241
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3242
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3243
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3244
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3245
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3246
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3247
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3248
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3249
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3250
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3251
+ GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47>
3252
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3253
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3254
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3255
+ T45, T46, T47, NoneT, NoneT, NoneT> {
3256
+ typedef Templates47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3257
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3258
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3259
+ T42, T43, T44, T45, T46, T47> type;
3260
+ };
3261
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3262
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3263
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3264
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3265
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3266
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3267
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3268
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3269
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3270
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3271
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3272
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3273
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3274
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3275
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3276
+ GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48>
3277
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3278
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3279
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3280
+ T45, T46, T47, T48, NoneT, NoneT> {
3281
+ typedef Templates48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3282
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3283
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3284
+ T42, T43, T44, T45, T46, T47, T48> type;
3285
+ };
3286
+ template <GTEST_TEMPLATE_ T1, GTEST_TEMPLATE_ T2, GTEST_TEMPLATE_ T3,
3287
+ GTEST_TEMPLATE_ T4, GTEST_TEMPLATE_ T5, GTEST_TEMPLATE_ T6,
3288
+ GTEST_TEMPLATE_ T7, GTEST_TEMPLATE_ T8, GTEST_TEMPLATE_ T9,
3289
+ GTEST_TEMPLATE_ T10, GTEST_TEMPLATE_ T11, GTEST_TEMPLATE_ T12,
3290
+ GTEST_TEMPLATE_ T13, GTEST_TEMPLATE_ T14, GTEST_TEMPLATE_ T15,
3291
+ GTEST_TEMPLATE_ T16, GTEST_TEMPLATE_ T17, GTEST_TEMPLATE_ T18,
3292
+ GTEST_TEMPLATE_ T19, GTEST_TEMPLATE_ T20, GTEST_TEMPLATE_ T21,
3293
+ GTEST_TEMPLATE_ T22, GTEST_TEMPLATE_ T23, GTEST_TEMPLATE_ T24,
3294
+ GTEST_TEMPLATE_ T25, GTEST_TEMPLATE_ T26, GTEST_TEMPLATE_ T27,
3295
+ GTEST_TEMPLATE_ T28, GTEST_TEMPLATE_ T29, GTEST_TEMPLATE_ T30,
3296
+ GTEST_TEMPLATE_ T31, GTEST_TEMPLATE_ T32, GTEST_TEMPLATE_ T33,
3297
+ GTEST_TEMPLATE_ T34, GTEST_TEMPLATE_ T35, GTEST_TEMPLATE_ T36,
3298
+ GTEST_TEMPLATE_ T37, GTEST_TEMPLATE_ T38, GTEST_TEMPLATE_ T39,
3299
+ GTEST_TEMPLATE_ T40, GTEST_TEMPLATE_ T41, GTEST_TEMPLATE_ T42,
3300
+ GTEST_TEMPLATE_ T43, GTEST_TEMPLATE_ T44, GTEST_TEMPLATE_ T45,
3301
+ GTEST_TEMPLATE_ T46, GTEST_TEMPLATE_ T47, GTEST_TEMPLATE_ T48,
3302
+ GTEST_TEMPLATE_ T49>
3303
+ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
3304
+ T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
3305
+ T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, T44,
3306
+ T45, T46, T47, T48, T49, NoneT> {
3307
+ typedef Templates49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3308
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
3309
+ T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
3310
+ T42, T43, T44, T45, T46, T47, T48, T49> type;
3311
+ };
3312
+
3313
+ // The TypeList template makes it possible to use either a single type
3314
+ // or a Types<...> list in TYPED_TEST_CASE() and
3315
+ // INSTANTIATE_TYPED_TEST_CASE_P().
3316
+
3317
+ template <typename T>
3318
+ struct TypeList {
3319
+ typedef Types1<T> type;
3320
+ };
3321
+
3322
+ template <typename T1, typename T2, typename T3, typename T4, typename T5,
3323
+ typename T6, typename T7, typename T8, typename T9, typename T10,
3324
+ typename T11, typename T12, typename T13, typename T14, typename T15,
3325
+ typename T16, typename T17, typename T18, typename T19, typename T20,
3326
+ typename T21, typename T22, typename T23, typename T24, typename T25,
3327
+ typename T26, typename T27, typename T28, typename T29, typename T30,
3328
+ typename T31, typename T32, typename T33, typename T34, typename T35,
3329
+ typename T36, typename T37, typename T38, typename T39, typename T40,
3330
+ typename T41, typename T42, typename T43, typename T44, typename T45,
3331
+ typename T46, typename T47, typename T48, typename T49, typename T50>
3332
+ struct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
3333
+ T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
3334
+ T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
3335
+ T44, T45, T46, T47, T48, T49, T50> > {
3336
+ typedef typename Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
3337
+ T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
3338
+ T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
3339
+ T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>::type type;
3340
+ };
3341
+
3342
+ #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P
3343
+
3344
+ } // namespace internal
3345
+ } // namespace testing
3346
+
3347
+ #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_