webruby 0.2.7 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1537) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webruby/environment.rb +24 -8
  3. data/lib/webruby/rake/files.rake +6 -22
  4. data/lib/webruby/rake/general.rake +1 -1
  5. data/lib/webruby/rake/mruby.rake +1 -0
  6. data/lib/webruby/utility.rb +14 -0
  7. data/modules/mruby/AUTHORS +14 -0
  8. data/modules/mruby/CONTRIBUTING.md +7 -4
  9. data/modules/mruby/INSTALL +28 -11
  10. data/modules/mruby/MITL +13 -13
  11. data/modules/mruby/Makefile +4 -5
  12. data/modules/mruby/README.md +54 -49
  13. data/modules/mruby/Rakefile +36 -6
  14. data/modules/mruby/benchmark/ao-render.rb +1 -2
  15. data/modules/mruby/benchmark/bm_app_lc_fizzbuzz.rb +52 -0
  16. data/modules/mruby/benchmark/fib39.rb +0 -0
  17. data/modules/mruby/bintest/mrbc.rb +12 -0
  18. data/modules/mruby/build_config.rb +32 -2
  19. data/modules/mruby/doc/api/README.md +30 -0
  20. data/modules/mruby/doc/api/mruby.h.md +69 -0
  21. data/modules/mruby/doc/compile/README.md +208 -99
  22. data/modules/mruby/doc/debugger/README.md +370 -0
  23. data/modules/mruby/doc/language/Core.md +1590 -0
  24. data/modules/mruby/doc/language/README.md +9 -0
  25. data/modules/mruby/doc/language/generator.rb +15 -0
  26. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_analyze.rb +231 -0
  27. data/modules/mruby/doc/language/mrbdoc/lib/mrbdoc_docu.rb +118 -0
  28. data/modules/mruby/doc/language/mrbdoc/mrbdoc.rb +38 -0
  29. data/modules/mruby/doc/mrbconf/README.md +160 -0
  30. data/modules/mruby/doc/mrbgems/README.md +136 -66
  31. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +1 -1
  32. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +1 -1
  33. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +1 -1
  34. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +1 -1
  35. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +1 -1
  36. data/modules/mruby/examples/targets/{ArduinoDue.rb → build_config_ArduinoDue.rb} +32 -6
  37. data/modules/mruby/examples/targets/build_config_IntelGalileo.rb +106 -0
  38. data/modules/mruby/examples/targets/{chipKitMax32.rb → build_config_chipKITMax32.rb} +26 -7
  39. data/modules/mruby/include/mrbconf.h +25 -1
  40. data/modules/mruby/include/mruby/array.h +32 -22
  41. data/modules/mruby/include/mruby/boxing_nan.h +94 -0
  42. data/modules/mruby/include/mruby/boxing_no.h +49 -0
  43. data/modules/mruby/include/mruby/boxing_word.h +119 -0
  44. data/modules/mruby/include/mruby/class.h +15 -13
  45. data/modules/mruby/include/mruby/compile.h +43 -36
  46. data/modules/mruby/include/mruby/data.h +13 -5
  47. data/modules/mruby/include/mruby/debug.h +9 -9
  48. data/modules/mruby/include/mruby/dump.h +32 -23
  49. data/modules/mruby/include/mruby/error.h +36 -0
  50. data/modules/mruby/include/mruby/gc.h +11 -6
  51. data/modules/mruby/include/mruby/hash.h +12 -12
  52. data/modules/mruby/include/mruby/irep.h +9 -3
  53. data/modules/mruby/include/mruby/khash.h +58 -41
  54. data/modules/mruby/include/mruby/numeric.h +38 -4
  55. data/modules/mruby/include/mruby/object.h +55 -0
  56. data/modules/mruby/include/mruby/opcode.h +160 -0
  57. data/modules/mruby/include/mruby/proc.h +19 -5
  58. data/modules/mruby/include/mruby/range.h +4 -3
  59. data/modules/mruby/include/mruby/re.h +20 -0
  60. data/modules/mruby/include/mruby/string.h +86 -47
  61. data/modules/mruby/include/mruby/value.h +100 -374
  62. data/modules/mruby/include/mruby/variable.h +34 -32
  63. data/modules/mruby/include/mruby/version.h +40 -0
  64. data/modules/mruby/include/mruby.h +211 -139
  65. data/modules/mruby/minirake +16 -9
  66. data/modules/mruby/mrbgems/default.gembox +12 -0
  67. data/modules/mruby/mrbgems/full-core.gembox +3 -3
  68. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +1 -0
  69. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +488 -8
  70. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +57 -31
  71. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +231 -45
  72. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +286 -0
  73. data/modules/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +701 -0
  74. data/modules/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +9 -0
  75. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +516 -0
  76. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
  77. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +235 -0
  78. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
  79. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +78 -0
  80. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
  81. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +428 -0
  82. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +501 -0
  83. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +58 -0
  84. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +54 -0
  85. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +746 -0
  86. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +163 -0
  87. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +16 -0
  88. data/modules/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +20 -0
  89. data/modules/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +12 -0
  90. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +14 -1
  91. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +154 -72
  92. data/modules/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +46 -0
  93. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -0
  94. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +37 -28
  95. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mrbgem.rake +30 -0
  96. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config +16 -0
  97. data/modules/mruby/mrbgems/mruby-bin-mruby-config/mruby-config.bat +30 -0
  98. data/modules/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +73 -0
  99. data/modules/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +6 -0
  100. data/modules/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +155 -0
  101. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +1 -0
  102. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +555 -21
  103. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +119 -0
  104. data/modules/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
  105. data/modules/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +150 -0
  106. data/modules/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +47 -0
  107. data/modules/mruby/mrbgems/mruby-enumerator/mrbgem.rake +7 -0
  108. data/modules/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +636 -0
  109. data/modules/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +537 -0
  110. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +1 -0
  111. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +243 -4
  112. data/modules/mruby/mrbgems/mruby-eval/test/eval.rb +80 -0
  113. data/modules/mruby/mrbgems/mruby-exit/mrbgem.rake +1 -0
  114. data/modules/mruby/mrbgems/mruby-exit/src/mruby-exit.c +1 -1
  115. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +1 -0
  116. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +157 -51
  117. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +179 -35
  118. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +3 -0
  119. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +241 -1
  120. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +11 -19
  121. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +138 -1
  122. data/modules/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
  123. data/modules/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +183 -0
  124. data/modules/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +53 -0
  125. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +1 -0
  126. data/modules/mruby/mrbgems/mruby-math/src/math.c +107 -14
  127. data/modules/mruby/mrbgems/mruby-math/test/math.rb +16 -0
  128. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +1 -0
  129. data/modules/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +5 -0
  130. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +9 -1
  131. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -0
  132. data/modules/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +19 -0
  133. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +5 -8
  134. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +16 -0
  135. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +1 -0
  136. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +121 -53
  137. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +27 -4
  138. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +1 -0
  139. data/modules/mruby/mrbgems/mruby-print/src/print.c +3 -5
  140. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +1 -0
  141. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +89 -19
  142. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.c +56 -0
  143. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +47 -0
  144. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +1 -0
  145. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +30 -25
  146. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +6 -3
  147. data/modules/mruby/mrbgems/mruby-random/src/random.c +157 -137
  148. data/modules/mruby/mrbgems/mruby-random/src/random.h +3 -3
  149. data/modules/mruby/mrbgems/mruby-random/test/random.rb +9 -9
  150. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +1 -0
  151. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +57 -3
  152. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +9 -0
  153. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +1 -0
  154. data/modules/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +9 -0
  155. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +29 -23
  156. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +7 -2
  157. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +1 -0
  158. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +250 -11
  159. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +220 -5
  160. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +326 -4
  161. data/modules/mruby/mrbgems/mruby-string-utf8/mrbgem.rake +2 -0
  162. data/modules/mruby/mrbgems/mruby-string-utf8/src/string.c +486 -52
  163. data/modules/mruby/mrbgems/mruby-string-utf8/test/string.rb +97 -14
  164. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +1 -0
  165. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +31 -0
  166. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +178 -196
  167. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +115 -61
  168. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +1 -0
  169. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +22 -17
  170. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +20 -11
  171. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +14 -0
  172. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +1 -0
  173. data/modules/mruby/mrbgems/mruby-time/mrblib/time.rb +9 -0
  174. data/modules/mruby/mrbgems/mruby-time/src/time.c +98 -37
  175. data/modules/mruby/mrbgems/mruby-time/test/time.rb +152 -148
  176. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +1 -0
  177. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +1 -1
  178. data/modules/mruby/mrblib/array.rb +110 -4
  179. data/modules/mruby/mrblib/class.rb +1 -22
  180. data/modules/mruby/mrblib/compar.rb +10 -30
  181. data/modules/mruby/mrblib/enum.rb +64 -52
  182. data/modules/mruby/mrblib/error.rb +9 -4
  183. data/modules/mruby/mrblib/hash.rb +164 -23
  184. data/modules/mruby/mrblib/kernel.rb +26 -22
  185. data/modules/mruby/mrblib/mrblib.rake +4 -4
  186. data/modules/mruby/mrblib/numeric.rb +22 -9
  187. data/modules/mruby/mrblib/range.rb +24 -2
  188. data/modules/mruby/mrblib/string.rb +15 -3
  189. data/modules/mruby/src/array.c +279 -339
  190. data/modules/mruby/src/backtrace.c +68 -16
  191. data/modules/mruby/src/class.c +539 -379
  192. data/modules/mruby/src/codegen.c +424 -207
  193. data/modules/mruby/src/compar.c +1 -1
  194. data/modules/mruby/src/crc.c +7 -6
  195. data/modules/mruby/src/debug.c +37 -36
  196. data/modules/mruby/src/dump.c +463 -213
  197. data/modules/mruby/src/enum.c +1 -1
  198. data/modules/mruby/src/error.c +91 -92
  199. data/modules/mruby/src/error.h +3 -19
  200. data/modules/mruby/src/etc.c +85 -82
  201. data/modules/mruby/src/gc.c +134 -108
  202. data/modules/mruby/src/hash.c +161 -565
  203. data/modules/mruby/src/init.c +2 -13
  204. data/modules/mruby/src/kernel.c +217 -251
  205. data/modules/mruby/src/load.c +280 -283
  206. data/modules/mruby/src/mrb_throw.h +41 -0
  207. data/modules/mruby/src/mruby_core.rake +57 -7
  208. data/modules/mruby/src/node.h +104 -104
  209. data/modules/mruby/src/numeric.c +221 -208
  210. data/modules/mruby/src/object.c +41 -42
  211. data/modules/mruby/src/opcode.h +2 -160
  212. data/modules/mruby/src/parse.y +3430 -3223
  213. data/modules/mruby/src/pool.c +13 -9
  214. data/modules/mruby/src/print.c +20 -17
  215. data/modules/mruby/src/proc.c +77 -21
  216. data/modules/mruby/src/range.c +55 -45
  217. data/modules/mruby/src/state.c +95 -31
  218. data/modules/mruby/src/string.c +462 -468
  219. data/modules/mruby/src/symbol.c +95 -85
  220. data/modules/mruby/src/variable.c +104 -74
  221. data/modules/mruby/src/version.c +13 -0
  222. data/modules/mruby/src/vm.c +528 -296
  223. data/modules/mruby/tasks/libmruby.rake +9 -5
  224. data/modules/mruby/tasks/mrbgem_spec.rake +130 -26
  225. data/modules/mruby/tasks/mrbgems.rake +21 -11
  226. data/modules/mruby/tasks/mrbgems_test.rake +46 -40
  227. data/modules/mruby/tasks/mruby_build.rake +54 -12
  228. data/modules/mruby/tasks/mruby_build_commands.rake +34 -5
  229. data/modules/mruby/tasks/mruby_build_gem.rake +25 -3
  230. data/modules/mruby/tasks/ruby_ext.rake +11 -2
  231. data/modules/mruby/tasks/toolchains/clang.rake +2 -1
  232. data/modules/mruby/tasks/toolchains/gcc.rake +26 -3
  233. data/modules/mruby/tasks/toolchains/visualcpp.rake +17 -8
  234. data/modules/mruby/test/assert.rb +30 -8
  235. data/modules/mruby/test/bintest.rb +10 -0
  236. data/modules/mruby/test/driver.c +74 -24
  237. data/modules/mruby/test/init_mrbtest.c +21 -2
  238. data/modules/mruby/test/mrbtest.rake +27 -5
  239. data/modules/mruby/test/t/argumenterror.rb +0 -5
  240. data/modules/mruby/test/t/array.rb +23 -7
  241. data/modules/mruby/test/t/bs_block.rb +32 -0
  242. data/modules/mruby/test/t/class.rb +29 -5
  243. data/modules/mruby/test/t/comparable.rb +20 -12
  244. data/modules/mruby/test/t/enumerable.rb +33 -7
  245. data/modules/mruby/test/t/exception.rb +63 -38
  246. data/modules/mruby/test/t/false.rb +2 -4
  247. data/modules/mruby/test/t/float.rb +39 -4
  248. data/modules/mruby/test/t/hash.rb +40 -6
  249. data/modules/mruby/test/t/indexerror.rb +0 -4
  250. data/modules/mruby/test/t/integer.rb +41 -5
  251. data/modules/mruby/test/t/kernel.rb +90 -3
  252. data/modules/mruby/test/t/localjumperror.rb +4 -4
  253. data/modules/mruby/test/t/methods.rb +1 -1
  254. data/modules/mruby/test/t/module.rb +43 -13
  255. data/modules/mruby/test/t/nameerror.rb +0 -4
  256. data/modules/mruby/test/t/nil.rb +5 -0
  257. data/modules/mruby/test/t/nomethoderror.rb +11 -2
  258. data/modules/mruby/test/t/numeric.rb +18 -4
  259. data/modules/mruby/test/t/proc.rb +59 -6
  260. data/modules/mruby/test/t/range.rb +15 -5
  261. data/modules/mruby/test/t/rangeerror.rb +0 -4
  262. data/modules/mruby/test/t/standarderror.rb +0 -4
  263. data/modules/mruby/test/t/string.rb +56 -12
  264. data/modules/mruby/test/t/superclass.rb +46 -0
  265. data/modules/mruby/test/t/symbol.rb +0 -4
  266. data/modules/mruby/test/t/syntax.rb +134 -1
  267. data/modules/mruby/test/t/true.rb +2 -4
  268. data/modules/mruby/test/t/typeerror.rb +0 -5
  269. data/modules/mruby/test/t/unicode.rb +35 -0
  270. data/modules/mruby/tools/mrbc/mrbc.c +9 -12
  271. data/modules/mruby/travis_config.rb +22 -2
  272. metadata +98 -1299
  273. data/modules/emscripten/AUTHORS +0 -117
  274. data/modules/emscripten/CONTRIBUTING.markdown +0 -5
  275. data/modules/emscripten/ChangeLog +0 -468
  276. data/modules/emscripten/LICENSE +0 -94
  277. data/modules/emscripten/README.markdown +0 -14
  278. data/modules/emscripten/cmake/Modules/FindOpenAL.cmake +0 -26
  279. data/modules/emscripten/cmake/Platform/Emscripten.cmake +0 -228
  280. data/modules/emscripten/em++ +0 -12
  281. data/modules/emscripten/em++.bat +0 -2
  282. data/modules/emscripten/em-config +0 -24
  283. data/modules/emscripten/em-config.bat +0 -2
  284. data/modules/emscripten/emar +0 -24
  285. data/modules/emscripten/emar.bat +0 -2
  286. data/modules/emscripten/emcc +0 -2069
  287. data/modules/emscripten/emcc.bat +0 -2
  288. data/modules/emscripten/emcc.py +0 -5
  289. data/modules/emscripten/emconfigure +0 -27
  290. data/modules/emscripten/emconfigure.bat +0 -2
  291. data/modules/emscripten/emlink.py +0 -33
  292. data/modules/emscripten/emmake +0 -29
  293. data/modules/emscripten/emmake.bat +0 -2
  294. data/modules/emscripten/emranlib +0 -9
  295. data/modules/emscripten/emranlib.bat +0 -2
  296. data/modules/emscripten/emrun +0 -1087
  297. data/modules/emscripten/emrun.bat +0 -2
  298. data/modules/emscripten/emscons +0 -20
  299. data/modules/emscripten/emscripten.py +0 -1347
  300. data/modules/emscripten/package.json +0 -7
  301. data/modules/emscripten/patches/README +0 -4
  302. data/modules/emscripten/patches/series +0 -2
  303. data/modules/emscripten/scons-tools/closure.py +0 -28
  304. data/modules/emscripten/scons-tools/emscripten.py +0 -364
  305. data/modules/emscripten/scons-tools/llvm.py +0 -34
  306. data/modules/emscripten/src/analyzer.js +0 -1781
  307. data/modules/emscripten/src/closure-externs.js +0 -110
  308. data/modules/emscripten/src/compiler.html +0 -48
  309. data/modules/emscripten/src/compiler.js +0 -331
  310. data/modules/emscripten/src/compiler_phase.html +0 -33
  311. data/modules/emscripten/src/corruptionCheck.js +0 -98
  312. data/modules/emscripten/src/determinstic.js +0 -20
  313. data/modules/emscripten/src/embind/embind.js +0 -1677
  314. data/modules/emscripten/src/embind/emval.js +0 -284
  315. data/modules/emscripten/src/emrun_postjs.js +0 -20
  316. data/modules/emscripten/src/emrun_prejs.js +0 -5
  317. data/modules/emscripten/src/emscripten-source-map.min.js +0 -31
  318. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +0 -97
  319. data/modules/emscripten/src/experimental/batching.diff +0 -44
  320. data/modules/emscripten/src/experimental/functypeopt.diff +0 -113
  321. data/modules/emscripten/src/experimental/multiple_heaps.diff +0 -175
  322. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +0 -197
  323. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +0 -124
  324. data/modules/emscripten/src/experimental/remove__label__s.diff +0 -140
  325. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +0 -99
  326. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +0 -57
  327. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +0 -336
  328. data/modules/emscripten/src/experimental/stringCache.diff +0 -147
  329. data/modules/emscripten/src/fastLong.js +0 -299
  330. data/modules/emscripten/src/gl-matrix.js +0 -1952
  331. data/modules/emscripten/src/headless.js +0 -295
  332. data/modules/emscripten/src/headlessCanvas.js +0 -618
  333. data/modules/emscripten/src/hello_world.js +0 -92
  334. data/modules/emscripten/src/intertyper.js +0 -1228
  335. data/modules/emscripten/src/jsifier.js +0 -1969
  336. data/modules/emscripten/src/library.js +0 -9196
  337. data/modules/emscripten/src/library_browser.js +0 -988
  338. data/modules/emscripten/src/library_egl.js +0 -564
  339. data/modules/emscripten/src/library_fs.js +0 -1619
  340. data/modules/emscripten/src/library_gc.js +0 -236
  341. data/modules/emscripten/src/library_gl.js +0 -5194
  342. data/modules/emscripten/src/library_glfw.js +0 -585
  343. data/modules/emscripten/src/library_glut.js +0 -504
  344. data/modules/emscripten/src/library_idbfs.js +0 -216
  345. data/modules/emscripten/src/library_jansson.js +0 -320
  346. data/modules/emscripten/src/library_memfs.js +0 -303
  347. data/modules/emscripten/src/library_nodefs.js +0 -286
  348. data/modules/emscripten/src/library_openal.js +0 -915
  349. data/modules/emscripten/src/library_path.js +0 -133
  350. data/modules/emscripten/src/library_sdl.js +0 -2728
  351. data/modules/emscripten/src/library_sockfs.js +0 -578
  352. data/modules/emscripten/src/library_strtok_r.c +0 -97
  353. data/modules/emscripten/src/library_tty.js +0 -146
  354. data/modules/emscripten/src/library_uuid.js +0 -140
  355. data/modules/emscripten/src/library_xlib.js +0 -23
  356. data/modules/emscripten/src/long.js +0 -1609
  357. data/modules/emscripten/src/modules.js +0 -543
  358. data/modules/emscripten/src/parseTools.js +0 -2723
  359. data/modules/emscripten/src/postamble.js +0 -239
  360. data/modules/emscripten/src/postamble_sharedlib.js +0 -16
  361. data/modules/emscripten/src/preamble.js +0 -1233
  362. data/modules/emscripten/src/preamble_sharedlib.js +0 -25
  363. data/modules/emscripten/src/proxyClient.js +0 -82
  364. data/modules/emscripten/src/proxyWorker.js +0 -143
  365. data/modules/emscripten/src/relooper/README.markdown +0 -14
  366. data/modules/emscripten/src/relooper/Relooper.cpp +0 -1301
  367. data/modules/emscripten/src/relooper/Relooper.h +0 -257
  368. data/modules/emscripten/src/relooper/doit.sh +0 -70
  369. data/modules/emscripten/src/relooper/emscripten/glue.js +0 -67
  370. data/modules/emscripten/src/relooper/emscripten/test.js +0 -44
  371. data/modules/emscripten/src/relooper/fuzzer.py +0 -131
  372. data/modules/emscripten/src/relooper/ministring.h +0 -35
  373. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  374. data/modules/emscripten/src/relooper/test.cpp +0 -290
  375. data/modules/emscripten/src/relooper/test.txt +0 -317
  376. data/modules/emscripten/src/relooper/test2.c +0 -44
  377. data/modules/emscripten/src/relooper/test2.txt +0 -26
  378. data/modules/emscripten/src/relooper/test3.c +0 -42
  379. data/modules/emscripten/src/relooper/test3.txt +0 -56
  380. data/modules/emscripten/src/relooper/test4.cpp +0 -40
  381. data/modules/emscripten/src/relooper/test4.txt +0 -44
  382. data/modules/emscripten/src/relooper/test5.cpp +0 -40
  383. data/modules/emscripten/src/relooper/test5.txt +0 -56
  384. data/modules/emscripten/src/relooper/test6.cpp +0 -31
  385. data/modules/emscripten/src/relooper/test6.txt +0 -26
  386. data/modules/emscripten/src/relooper/test_dead.cpp +0 -28
  387. data/modules/emscripten/src/relooper/test_dead.txt +0 -9
  388. data/modules/emscripten/src/relooper/test_debug.cpp +0 -30
  389. data/modules/emscripten/src/relooper/test_debug.txt +0 -142
  390. data/modules/emscripten/src/relooper/test_fuzz1.cpp +0 -52
  391. data/modules/emscripten/src/relooper/test_fuzz1.txt +0 -72
  392. data/modules/emscripten/src/relooper/test_fuzz2.cpp +0 -34
  393. data/modules/emscripten/src/relooper/test_fuzz2.txt +0 -30
  394. data/modules/emscripten/src/relooper/test_fuzz3.cpp +0 -36
  395. data/modules/emscripten/src/relooper/test_fuzz3.txt +0 -25
  396. data/modules/emscripten/src/relooper/test_fuzz4.cpp +0 -38
  397. data/modules/emscripten/src/relooper/test_fuzz4.txt +0 -41
  398. data/modules/emscripten/src/relooper/test_fuzz5.cpp +0 -57
  399. data/modules/emscripten/src/relooper/test_fuzz5.txt +0 -86
  400. data/modules/emscripten/src/relooper/test_fuzz6.cpp +0 -322
  401. data/modules/emscripten/src/relooper/test_fuzz6.txt +0 -291
  402. data/modules/emscripten/src/relooper/test_inf.cpp +0 -813
  403. data/modules/emscripten/src/relooper/test_inf.txt +0 -1131
  404. data/modules/emscripten/src/relooper/testit.sh +0 -62
  405. data/modules/emscripten/src/relooper/updateit.sh +0 -17
  406. data/modules/emscripten/src/runtime.js +0 -604
  407. data/modules/emscripten/src/settings.js +0 -476
  408. data/modules/emscripten/src/shell.html +0 -95
  409. data/modules/emscripten/src/shell.js +0 -173
  410. data/modules/emscripten/src/shell_sharedlib.js +0 -29
  411. data/modules/emscripten/src/simd.js +0 -1128
  412. data/modules/emscripten/src/socket.io.js +0 -3870
  413. data/modules/emscripten/src/struct_info.json +0 -1077
  414. data/modules/emscripten/src/utility.js +0 -411
  415. data/modules/emscripten/src/wrtcp.js +0 -821
  416. data/modules/emscripten/system/bin/sdl-config +0 -13
  417. data/modules/emscripten/system/include/AL/al.h +0 -172
  418. data/modules/emscripten/system/include/AL/alc.h +0 -84
  419. data/modules/emscripten/system/include/EGL/egl.h +0 -329
  420. data/modules/emscripten/system/include/EGL/eglext.h +0 -398
  421. data/modules/emscripten/system/include/EGL/eglplatform.h +0 -141
  422. data/modules/emscripten/system/include/GL/freeglut_std.h +0 -628
  423. data/modules/emscripten/system/include/GL/gl.h +0 -2241
  424. data/modules/emscripten/system/include/GL/glew.h +0 -6
  425. data/modules/emscripten/system/include/GL/glext.h +0 -11127
  426. data/modules/emscripten/system/include/GL/glfw.h +0 -518
  427. data/modules/emscripten/system/include/GL/glu.h +0 -353
  428. data/modules/emscripten/system/include/GL/glut.h +0 -21
  429. data/modules/emscripten/system/include/GLES/gl.h +0 -770
  430. data/modules/emscripten/system/include/GLES/glext.h +0 -1278
  431. data/modules/emscripten/system/include/GLES/glplatform.h +0 -30
  432. data/modules/emscripten/system/include/GLES2/gl2.h +0 -621
  433. data/modules/emscripten/system/include/GLES2/gl2ext.h +0 -803
  434. data/modules/emscripten/system/include/GLES2/gl2platform.h +0 -30
  435. data/modules/emscripten/system/include/KHR/khrplatform.h +0 -277
  436. data/modules/emscripten/system/include/SDL/COPYING +0 -19
  437. data/modules/emscripten/system/include/SDL/SDL.h +0 -162
  438. data/modules/emscripten/system/include/SDL/SDL_assert.h +0 -241
  439. data/modules/emscripten/system/include/SDL/SDL_atomic.h +0 -318
  440. data/modules/emscripten/system/include/SDL/SDL_audio.h +0 -509
  441. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +0 -60
  442. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +0 -75
  443. data/modules/emscripten/system/include/SDL/SDL_compat.h +0 -365
  444. data/modules/emscripten/system/include/SDL/SDL_config.h +0 -48
  445. data/modules/emscripten/system/include/SDL/SDL_config.h.in +0 -297
  446. data/modules/emscripten/system/include/SDL/SDL_config_android.h +0 -133
  447. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +0 -148
  448. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +0 -172
  449. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +0 -74
  450. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +0 -129
  451. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +0 -125
  452. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +0 -207
  453. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +0 -119
  454. data/modules/emscripten/system/include/SDL/SDL_copying.h +0 -20
  455. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +0 -150
  456. data/modules/emscripten/system/include/SDL/SDL_endian.h +0 -248
  457. data/modules/emscripten/system/include/SDL/SDL_error.h +0 -77
  458. data/modules/emscripten/system/include/SDL/SDL_events.h +0 -640
  459. data/modules/emscripten/system/include/SDL/SDL_gesture.h +0 -91
  460. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +0 -246
  461. data/modules/emscripten/system/include/SDL/SDL_haptic.h +0 -1200
  462. data/modules/emscripten/system/include/SDL/SDL_hints.h +0 -206
  463. data/modules/emscripten/system/include/SDL/SDL_image.h +0 -138
  464. data/modules/emscripten/system/include/SDL/SDL_input.h +0 -87
  465. data/modules/emscripten/system/include/SDL/SDL_joystick.h +0 -208
  466. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +0 -169
  467. data/modules/emscripten/system/include/SDL/SDL_keycode.h +0 -344
  468. data/modules/emscripten/system/include/SDL/SDL_loadso.h +0 -85
  469. data/modules/emscripten/system/include/SDL/SDL_log.h +0 -211
  470. data/modules/emscripten/system/include/SDL/SDL_main.h +0 -98
  471. data/modules/emscripten/system/include/SDL/SDL_mixer.h +0 -634
  472. data/modules/emscripten/system/include/SDL/SDL_mouse.h +0 -213
  473. data/modules/emscripten/system/include/SDL/SDL_mutex.h +0 -248
  474. data/modules/emscripten/system/include/SDL/SDL_name.h +0 -11
  475. data/modules/emscripten/system/include/SDL/SDL_opengl.h +0 -11116
  476. data/modules/emscripten/system/include/SDL/SDL_opengles.h +0 -38
  477. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +0 -38
  478. data/modules/emscripten/system/include/SDL/SDL_pixels.h +0 -423
  479. data/modules/emscripten/system/include/SDL/SDL_platform.h +0 -160
  480. data/modules/emscripten/system/include/SDL/SDL_power.h +0 -79
  481. data/modules/emscripten/system/include/SDL/SDL_quit.h +0 -58
  482. data/modules/emscripten/system/include/SDL/SDL_rect.h +0 -136
  483. data/modules/emscripten/system/include/SDL/SDL_render.h +0 -615
  484. data/modules/emscripten/system/include/SDL/SDL_revision.h +0 -2
  485. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +0 -2
  486. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +0 -123
  487. data/modules/emscripten/system/include/SDL/SDL_rwops.h +0 -220
  488. data/modules/emscripten/system/include/SDL/SDL_scancode.h +0 -398
  489. data/modules/emscripten/system/include/SDL/SDL_shape.h +0 -147
  490. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +0 -764
  491. data/modules/emscripten/system/include/SDL/SDL_surface.h +0 -499
  492. data/modules/emscripten/system/include/SDL/SDL_syswm.h +0 -241
  493. data/modules/emscripten/system/include/SDL/SDL_thread.h +0 -182
  494. data/modules/emscripten/system/include/SDL/SDL_timer.h +0 -108
  495. data/modules/emscripten/system/include/SDL/SDL_touch.h +0 -124
  496. data/modules/emscripten/system/include/SDL/SDL_ttf.h +0 -249
  497. data/modules/emscripten/system/include/SDL/SDL_types.h +0 -29
  498. data/modules/emscripten/system/include/SDL/SDL_version.h +0 -166
  499. data/modules/emscripten/system/include/SDL/SDL_video.h +0 -820
  500. data/modules/emscripten/system/include/SDL/begin_code.h +0 -135
  501. data/modules/emscripten/system/include/SDL/close_code.h +0 -37
  502. data/modules/emscripten/system/include/X11/X.h +0 -717
  503. data/modules/emscripten/system/include/X11/Xatom.h +0 -79
  504. data/modules/emscripten/system/include/X11/Xfuncproto.h +0 -127
  505. data/modules/emscripten/system/include/X11/Xlib.h +0 -4023
  506. data/modules/emscripten/system/include/X11/Xosdefs.h +0 -116
  507. data/modules/emscripten/system/include/X11/Xutil.h +0 -826
  508. data/modules/emscripten/system/include/X11/keysym.h +0 -73
  509. data/modules/emscripten/system/include/X11/keysymdef.h +0 -2389
  510. data/modules/emscripten/system/include/compat/ctype.h +0 -34
  511. data/modules/emscripten/system/include/compat/malloc.h +0 -48
  512. data/modules/emscripten/system/include/compat/math.h +0 -14
  513. data/modules/emscripten/system/include/compat/netdb.h +0 -22
  514. data/modules/emscripten/system/include/compat/stdarg.h +0 -16
  515. data/modules/emscripten/system/include/compat/stdlib.h +0 -16
  516. data/modules/emscripten/system/include/compat/string.h +0 -17
  517. data/modules/emscripten/system/include/compat/sys/socketvar.h +0 -14
  518. data/modules/emscripten/system/include/compat/sys/stat.h +0 -20
  519. data/modules/emscripten/system/include/compat/sys/timeb.h +0 -35
  520. data/modules/emscripten/system/include/compat/time.h +0 -18
  521. data/modules/emscripten/system/include/compat/unistd.h +0 -16
  522. data/modules/emscripten/system/include/compat/wchar.h +0 -23
  523. data/modules/emscripten/system/include/compat/wctype.h +0 -23
  524. data/modules/emscripten/system/include/compat/xlocale.h +0 -19
  525. data/modules/emscripten/system/include/emscripten/bind.h +0 -1210
  526. data/modules/emscripten/system/include/emscripten/emmintrin.h +0 -87
  527. data/modules/emscripten/system/include/emscripten/emscripten.h +0 -519
  528. data/modules/emscripten/system/include/emscripten/val.h +0 -311
  529. data/modules/emscripten/system/include/emscripten/vector.h +0 -34
  530. data/modules/emscripten/system/include/emscripten/wire.h +0 -393
  531. data/modules/emscripten/system/include/emscripten/xmmintrin.h +0 -131
  532. data/modules/emscripten/system/include/execinfo.h +0 -44
  533. data/modules/emscripten/system/include/gc.h +0 -70
  534. data/modules/emscripten/system/include/gfx/png.h +0 -3798
  535. data/modules/emscripten/system/include/gfx/pngconf.h +0 -1665
  536. data/modules/emscripten/system/include/gfx/tiff.h +0 -654
  537. data/modules/emscripten/system/include/gfx/tiffconf.h +0 -104
  538. data/modules/emscripten/system/include/gfx/tiffio.h +0 -526
  539. data/modules/emscripten/system/include/gfx/tiffvers.h +0 -9
  540. data/modules/emscripten/system/include/jansson.h +0 -323
  541. data/modules/emscripten/system/include/jansson_config.h +0 -54
  542. data/modules/emscripten/system/include/libc/aio.h +0 -69
  543. data/modules/emscripten/system/include/libc/alloca.h +0 -21
  544. data/modules/emscripten/system/include/libc/ar.h +0 -25
  545. data/modules/emscripten/system/include/libc/arpa/ftp.h +0 -35
  546. data/modules/emscripten/system/include/libc/arpa/inet.h +0 -36
  547. data/modules/emscripten/system/include/libc/arpa/nameser.h +0 -467
  548. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +0 -2
  549. data/modules/emscripten/system/include/libc/arpa/telnet.h +0 -251
  550. data/modules/emscripten/system/include/libc/arpa/tftp.h +0 -31
  551. data/modules/emscripten/system/include/libc/assert.h +0 -19
  552. data/modules/emscripten/system/include/libc/bits/alltypes.h +0 -397
  553. data/modules/emscripten/system/include/libc/bits/endian.h +0 -1
  554. data/modules/emscripten/system/include/libc/bits/errno.h +0 -134
  555. data/modules/emscripten/system/include/libc/bits/fcntl.h +0 -38
  556. data/modules/emscripten/system/include/libc/bits/fenv.h +0 -34
  557. data/modules/emscripten/system/include/libc/bits/float.h +0 -17
  558. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  559. data/modules/emscripten/system/include/libc/bits/ioctl.h +0 -197
  560. data/modules/emscripten/system/include/libc/bits/ipc.h +0 -14
  561. data/modules/emscripten/system/include/libc/bits/limits.h +0 -8
  562. data/modules/emscripten/system/include/libc/bits/mman.h +0 -62
  563. data/modules/emscripten/system/include/libc/bits/msg.h +0 -16
  564. data/modules/emscripten/system/include/libc/bits/posix.h +0 -2
  565. data/modules/emscripten/system/include/libc/bits/reg.h +0 -19
  566. data/modules/emscripten/system/include/libc/bits/setjmp.h +0 -1
  567. data/modules/emscripten/system/include/libc/bits/shm.h +0 -18
  568. data/modules/emscripten/system/include/libc/bits/signal.h +0 -112
  569. data/modules/emscripten/system/include/libc/bits/socket.h +0 -17
  570. data/modules/emscripten/system/include/libc/bits/stat.h +0 -22
  571. data/modules/emscripten/system/include/libc/bits/statfs.h +0 -7
  572. data/modules/emscripten/system/include/libc/bits/stdarg.h +0 -4
  573. data/modules/emscripten/system/include/libc/bits/stdint.h +0 -20
  574. data/modules/emscripten/system/include/libc/bits/syscall.h +0 -696
  575. data/modules/emscripten/system/include/libc/bits/termios.h +0 -160
  576. data/modules/emscripten/system/include/libc/bits/user.h +0 -48
  577. data/modules/emscripten/system/include/libc/byteswap.h +0 -26
  578. data/modules/emscripten/system/include/libc/complex.h +0 -125
  579. data/modules/emscripten/system/include/libc/cpio.h +0 -29
  580. data/modules/emscripten/system/include/libc/crypt.h +0 -20
  581. data/modules/emscripten/system/include/libc/ctype.h +0 -67
  582. data/modules/emscripten/system/include/libc/dirent.h +0 -79
  583. data/modules/emscripten/system/include/libc/dlfcn.h +0 -42
  584. data/modules/emscripten/system/include/libc/elf.h +0 -2555
  585. data/modules/emscripten/system/include/libc/endian.h +0 -82
  586. data/modules/emscripten/system/include/libc/err.h +0 -25
  587. data/modules/emscripten/system/include/libc/errno.h +0 -27
  588. data/modules/emscripten/system/include/libc/fcntl.h +0 -175
  589. data/modules/emscripten/system/include/libc/features.h +0 -32
  590. data/modules/emscripten/system/include/libc/fenv.h +0 -28
  591. data/modules/emscripten/system/include/libc/float.h +0 -34
  592. data/modules/emscripten/system/include/libc/fnmatch.h +0 -29
  593. data/modules/emscripten/system/include/libc/ftw.h +0 -42
  594. data/modules/emscripten/system/include/libc/getopt.h +0 -31
  595. data/modules/emscripten/system/include/libc/glob.h +0 -48
  596. data/modules/emscripten/system/include/libc/grp.h +0 -52
  597. data/modules/emscripten/system/include/libc/iconv.h +0 -24
  598. data/modules/emscripten/system/include/libc/ifaddrs.h +0 -35
  599. data/modules/emscripten/system/include/libc/inttypes.h +0 -227
  600. data/modules/emscripten/system/include/libc/iso646.h +0 -20
  601. data/modules/emscripten/system/include/libc/langinfo.h +0 -88
  602. data/modules/emscripten/system/include/libc/lastlog.h +0 -1
  603. data/modules/emscripten/system/include/libc/libgen.h +0 -15
  604. data/modules/emscripten/system/include/libc/libintl.h +0 -25
  605. data/modules/emscripten/system/include/libc/limits.h +0 -146
  606. data/modules/emscripten/system/include/libc/link.h +0 -54
  607. data/modules/emscripten/system/include/libc/locale.h +0 -82
  608. data/modules/emscripten/system/include/libc/malloc.h +0 -0
  609. data/modules/emscripten/system/include/libc/math.h +0 -422
  610. data/modules/emscripten/system/include/libc/memory.h +0 -1
  611. data/modules/emscripten/system/include/libc/mntent.h +0 -44
  612. data/modules/emscripten/system/include/libc/monetary.h +0 -23
  613. data/modules/emscripten/system/include/libc/mqueue.h +0 -36
  614. data/modules/emscripten/system/include/libc/net/ethernet.h +0 -55
  615. data/modules/emscripten/system/include/libc/net/if.h +0 -135
  616. data/modules/emscripten/system/include/libc/net/if_arp.h +0 -133
  617. data/modules/emscripten/system/include/libc/net/route.h +0 -124
  618. data/modules/emscripten/system/include/libc/netdb.h +0 -161
  619. data/modules/emscripten/system/include/libc/netinet/ether.h +0 -14
  620. data/modules/emscripten/system/include/libc/netinet/icmp6.h +0 -305
  621. data/modules/emscripten/system/include/libc/netinet/if_ether.h +0 -126
  622. data/modules/emscripten/system/include/libc/netinet/in.h +0 -336
  623. data/modules/emscripten/system/include/libc/netinet/in_systm.h +0 -9
  624. data/modules/emscripten/system/include/libc/netinet/ip.h +0 -186
  625. data/modules/emscripten/system/include/libc/netinet/ip6.h +0 -142
  626. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +0 -192
  627. data/modules/emscripten/system/include/libc/netinet/tcp.h +0 -71
  628. data/modules/emscripten/system/include/libc/netinet/udp.h +0 -35
  629. data/modules/emscripten/system/include/libc/netpacket/packet.h +0 -44
  630. data/modules/emscripten/system/include/libc/nl_types.h +0 -22
  631. data/modules/emscripten/system/include/libc/paths.h +0 -32
  632. data/modules/emscripten/system/include/libc/poll.h +0 -46
  633. data/modules/emscripten/system/include/libc/pthread.h +0 -222
  634. data/modules/emscripten/system/include/libc/pty.h +0 -18
  635. data/modules/emscripten/system/include/libc/pwd.h +0 -49
  636. data/modules/emscripten/system/include/libc/readme.txt +0 -3
  637. data/modules/emscripten/system/include/libc/regex.h +0 -62
  638. data/modules/emscripten/system/include/libc/resolv.h +0 -144
  639. data/modules/emscripten/system/include/libc/sched.h +0 -132
  640. data/modules/emscripten/system/include/libc/search.h +0 -51
  641. data/modules/emscripten/system/include/libc/semaphore.h +0 -35
  642. data/modules/emscripten/system/include/libc/setjmp.h +0 -42
  643. data/modules/emscripten/system/include/libc/shadow.h +0 -44
  644. data/modules/emscripten/system/include/libc/signal.h +0 -255
  645. data/modules/emscripten/system/include/libc/spawn.h +0 -74
  646. data/modules/emscripten/system/include/libc/stdalign.h +0 -15
  647. data/modules/emscripten/system/include/libc/stdarg.h +0 -25
  648. data/modules/emscripten/system/include/libc/stdbool.h +0 -14
  649. data/modules/emscripten/system/include/libc/stddef.h +0 -18
  650. data/modules/emscripten/system/include/libc/stdint.h +0 -117
  651. data/modules/emscripten/system/include/libc/stdio.h +0 -199
  652. data/modules/emscripten/system/include/libc/stdio_ext.h +0 -34
  653. data/modules/emscripten/system/include/libc/stdlib.h +0 -171
  654. data/modules/emscripten/system/include/libc/stdnoreturn.h +0 -5
  655. data/modules/emscripten/system/include/libc/string.h +0 -102
  656. data/modules/emscripten/system/include/libc/strings.h +0 -35
  657. data/modules/emscripten/system/include/libc/stropts.h +0 -139
  658. data/modules/emscripten/system/include/libc/sys/acct.h +0 -75
  659. data/modules/emscripten/system/include/libc/sys/cachectl.h +0 -22
  660. data/modules/emscripten/system/include/libc/sys/dir.h +0 -2
  661. data/modules/emscripten/system/include/libc/sys/epoll.h +0 -67
  662. data/modules/emscripten/system/include/libc/sys/errno.h +0 -2
  663. data/modules/emscripten/system/include/libc/sys/eventfd.h +0 -26
  664. data/modules/emscripten/system/include/libc/sys/fcntl.h +0 -2
  665. data/modules/emscripten/system/include/libc/sys/file.h +0 -21
  666. data/modules/emscripten/system/include/libc/sys/fsuid.h +0 -20
  667. data/modules/emscripten/system/include/libc/sys/inotify.h +0 -57
  668. data/modules/emscripten/system/include/libc/sys/io.h +0 -17
  669. data/modules/emscripten/system/include/libc/sys/ioctl.h +0 -14
  670. data/modules/emscripten/system/include/libc/sys/ipc.h +0 -42
  671. data/modules/emscripten/system/include/libc/sys/klog.h +0 -14
  672. data/modules/emscripten/system/include/libc/sys/mman.h +0 -55
  673. data/modules/emscripten/system/include/libc/sys/mount.h +0 -72
  674. data/modules/emscripten/system/include/libc/sys/msg.h +0 -52
  675. data/modules/emscripten/system/include/libc/sys/mtio.h +0 -188
  676. data/modules/emscripten/system/include/libc/sys/param.h +0 -35
  677. data/modules/emscripten/system/include/libc/sys/personality.h +0 -46
  678. data/modules/emscripten/system/include/libc/sys/poll.h +0 -2
  679. data/modules/emscripten/system/include/libc/sys/prctl.h +0 -101
  680. data/modules/emscripten/system/include/libc/sys/procfs.h +0 -65
  681. data/modules/emscripten/system/include/libc/sys/ptrace.h +0 -96
  682. data/modules/emscripten/system/include/libc/sys/reboot.h +0 -20
  683. data/modules/emscripten/system/include/libc/sys/reg.h +0 -9
  684. data/modules/emscripten/system/include/libc/sys/resource.h +0 -103
  685. data/modules/emscripten/system/include/libc/sys/select.h +0 -42
  686. data/modules/emscripten/system/include/libc/sys/sem.h +0 -82
  687. data/modules/emscripten/system/include/libc/sys/sendfile.h +0 -22
  688. data/modules/emscripten/system/include/libc/sys/shm.h +0 -61
  689. data/modules/emscripten/system/include/libc/sys/signal.h +0 -2
  690. data/modules/emscripten/system/include/libc/sys/signalfd.h +0 -44
  691. data/modules/emscripten/system/include/libc/sys/socket.h +0 -299
  692. data/modules/emscripten/system/include/libc/sys/stat.h +0 -114
  693. data/modules/emscripten/system/include/libc/sys/statfs.h +0 -32
  694. data/modules/emscripten/system/include/libc/sys/statvfs.h +0 -57
  695. data/modules/emscripten/system/include/libc/sys/stropts.h +0 -1
  696. data/modules/emscripten/system/include/libc/sys/swap.h +0 -21
  697. data/modules/emscripten/system/include/libc/sys/syscall.h +0 -6
  698. data/modules/emscripten/system/include/libc/sys/sysctl.h +0 -17
  699. data/modules/emscripten/system/include/libc/sys/sysinfo.h +0 -36
  700. data/modules/emscripten/system/include/libc/sys/syslog.h +0 -1
  701. data/modules/emscripten/system/include/libc/sys/sysmacros.h +0 -15
  702. data/modules/emscripten/system/include/libc/sys/termios.h +0 -2
  703. data/modules/emscripten/system/include/libc/sys/time.h +0 -57
  704. data/modules/emscripten/system/include/libc/sys/timerfd.h +0 -24
  705. data/modules/emscripten/system/include/libc/sys/times.h +0 -26
  706. data/modules/emscripten/system/include/libc/sys/timex.h +0 -98
  707. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +0 -39
  708. data/modules/emscripten/system/include/libc/sys/types.h +0 -91
  709. data/modules/emscripten/system/include/libc/sys/ucontext.h +0 -1
  710. data/modules/emscripten/system/include/libc/sys/uio.h +0 -48
  711. data/modules/emscripten/system/include/libc/sys/un.h +0 -32
  712. data/modules/emscripten/system/include/libc/sys/user.h +0 -16
  713. data/modules/emscripten/system/include/libc/sys/utsname.h +0 -30
  714. data/modules/emscripten/system/include/libc/sys/vfs.h +0 -1
  715. data/modules/emscripten/system/include/libc/sys/wait.h +0 -55
  716. data/modules/emscripten/system/include/libc/sys/xattr.h +0 -30
  717. data/modules/emscripten/system/include/libc/syscall.h +0 -1
  718. data/modules/emscripten/system/include/libc/sysexits.h +0 -21
  719. data/modules/emscripten/system/include/libc/syslog.h +0 -104
  720. data/modules/emscripten/system/include/libc/tar.h +0 -33
  721. data/modules/emscripten/system/include/libc/termios.h +0 -46
  722. data/modules/emscripten/system/include/libc/tgmath.h +0 -270
  723. data/modules/emscripten/system/include/libc/time.h +0 -132
  724. data/modules/emscripten/system/include/libc/ucontext.h +0 -25
  725. data/modules/emscripten/system/include/libc/ulimit.h +0 -17
  726. data/modules/emscripten/system/include/libc/unistd.h +0 -519
  727. data/modules/emscripten/system/include/libc/utime.h +0 -24
  728. data/modules/emscripten/system/include/libc/utmp.h +0 -47
  729. data/modules/emscripten/system/include/libc/utmpx.h +0 -58
  730. data/modules/emscripten/system/include/libc/values.h +0 -39
  731. data/modules/emscripten/system/include/libc/wchar.h +0 -183
  732. data/modules/emscripten/system/include/libc/wctype.h +0 -77
  733. data/modules/emscripten/system/include/libc/wordexp.h +0 -42
  734. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +0 -123
  735. data/modules/emscripten/system/include/libcxx/LICENSE.txt +0 -76
  736. data/modules/emscripten/system/include/libcxx/__bit_reference +0 -1287
  737. data/modules/emscripten/system/include/libcxx/__config +0 -610
  738. data/modules/emscripten/system/include/libcxx/__debug +0 -218
  739. data/modules/emscripten/system/include/libcxx/__functional_03 +0 -2130
  740. data/modules/emscripten/system/include/libcxx/__functional_base +0 -615
  741. data/modules/emscripten/system/include/libcxx/__functional_base_03 +0 -1087
  742. data/modules/emscripten/system/include/libcxx/__hash_table +0 -2457
  743. data/modules/emscripten/system/include/libcxx/__locale +0 -1445
  744. data/modules/emscripten/system/include/libcxx/__mutex_base +0 -407
  745. data/modules/emscripten/system/include/libcxx/__split_buffer +0 -654
  746. data/modules/emscripten/system/include/libcxx/__sso_allocator +0 -77
  747. data/modules/emscripten/system/include/libcxx/__std_stream +0 -359
  748. data/modules/emscripten/system/include/libcxx/__tree +0 -2309
  749. data/modules/emscripten/system/include/libcxx/__tuple +0 -305
  750. data/modules/emscripten/system/include/libcxx/__tuple_03 +0 -27
  751. data/modules/emscripten/system/include/libcxx/__undef_min_max +0 -27
  752. data/modules/emscripten/system/include/libcxx/algorithm +0 -5679
  753. data/modules/emscripten/system/include/libcxx/array +0 -342
  754. data/modules/emscripten/system/include/libcxx/atomic +0 -1531
  755. data/modules/emscripten/system/include/libcxx/bitset +0 -1081
  756. data/modules/emscripten/system/include/libcxx/cassert +0 -25
  757. data/modules/emscripten/system/include/libcxx/ccomplex +0 -29
  758. data/modules/emscripten/system/include/libcxx/cctype +0 -164
  759. data/modules/emscripten/system/include/libcxx/cerrno +0 -393
  760. data/modules/emscripten/system/include/libcxx/cfenv +0 -82
  761. data/modules/emscripten/system/include/libcxx/cfloat +0 -78
  762. data/modules/emscripten/system/include/libcxx/chrono +0 -1027
  763. data/modules/emscripten/system/include/libcxx/cinttypes +0 -259
  764. data/modules/emscripten/system/include/libcxx/ciso646 +0 -25
  765. data/modules/emscripten/system/include/libcxx/climits +0 -48
  766. data/modules/emscripten/system/include/libcxx/clocale +0 -53
  767. data/modules/emscripten/system/include/libcxx/cmath +0 -1690
  768. data/modules/emscripten/system/include/libcxx/codecvt +0 -550
  769. data/modules/emscripten/system/include/libcxx/complex +0 -1567
  770. data/modules/emscripten/system/include/libcxx/complex.h +0 -35
  771. data/modules/emscripten/system/include/libcxx/condition_variable +0 -256
  772. data/modules/emscripten/system/include/libcxx/csetjmp +0 -52
  773. data/modules/emscripten/system/include/libcxx/csignal +0 -58
  774. data/modules/emscripten/system/include/libcxx/cstdarg +0 -48
  775. data/modules/emscripten/system/include/libcxx/cstdbool +0 -32
  776. data/modules/emscripten/system/include/libcxx/cstddef +0 -103
  777. data/modules/emscripten/system/include/libcxx/cstdint +0 -191
  778. data/modules/emscripten/system/include/libcxx/cstdio +0 -182
  779. data/modules/emscripten/system/include/libcxx/cstdlib +0 -172
  780. data/modules/emscripten/system/include/libcxx/cstring +0 -112
  781. data/modules/emscripten/system/include/libcxx/ctgmath +0 -29
  782. data/modules/emscripten/system/include/libcxx/ctime +0 -72
  783. data/modules/emscripten/system/include/libcxx/cwchar +0 -217
  784. data/modules/emscripten/system/include/libcxx/cwctype +0 -213
  785. data/modules/emscripten/system/include/libcxx/deque +0 -2873
  786. data/modules/emscripten/system/include/libcxx/dynarray +0 -311
  787. data/modules/emscripten/system/include/libcxx/exception +0 -250
  788. data/modules/emscripten/system/include/libcxx/ext/__hash +0 -46
  789. data/modules/emscripten/system/include/libcxx/ext/hash_map +0 -1007
  790. data/modules/emscripten/system/include/libcxx/ext/hash_set +0 -661
  791. data/modules/emscripten/system/include/libcxx/forward_list +0 -1663
  792. data/modules/emscripten/system/include/libcxx/fstream +0 -1431
  793. data/modules/emscripten/system/include/libcxx/functional +0 -2418
  794. data/modules/emscripten/system/include/libcxx/future +0 -2615
  795. data/modules/emscripten/system/include/libcxx/initializer_list +0 -118
  796. data/modules/emscripten/system/include/libcxx/iomanip +0 -651
  797. data/modules/emscripten/system/include/libcxx/ios +0 -1023
  798. data/modules/emscripten/system/include/libcxx/iosfwd +0 -194
  799. data/modules/emscripten/system/include/libcxx/iostream +0 -60
  800. data/modules/emscripten/system/include/libcxx/istream +0 -1716
  801. data/modules/emscripten/system/include/libcxx/iterator +0 -1568
  802. data/modules/emscripten/system/include/libcxx/limits +0 -813
  803. data/modules/emscripten/system/include/libcxx/list +0 -2355
  804. data/modules/emscripten/system/include/libcxx/locale +0 -4465
  805. data/modules/emscripten/system/include/libcxx/map +0 -2045
  806. data/modules/emscripten/system/include/libcxx/memory +0 -5448
  807. data/modules/emscripten/system/include/libcxx/mutex +0 -566
  808. data/modules/emscripten/system/include/libcxx/new +0 -146
  809. data/modules/emscripten/system/include/libcxx/numeric +0 -197
  810. data/modules/emscripten/system/include/libcxx/optional +0 -697
  811. data/modules/emscripten/system/include/libcxx/ostream +0 -1295
  812. data/modules/emscripten/system/include/libcxx/queue +0 -717
  813. data/modules/emscripten/system/include/libcxx/random +0 -6725
  814. data/modules/emscripten/system/include/libcxx/ratio +0 -487
  815. data/modules/emscripten/system/include/libcxx/readme.txt +0 -1
  816. data/modules/emscripten/system/include/libcxx/regex +0 -6487
  817. data/modules/emscripten/system/include/libcxx/scoped_allocator +0 -578
  818. data/modules/emscripten/system/include/libcxx/set +0 -1189
  819. data/modules/emscripten/system/include/libcxx/shared_mutex +0 -419
  820. data/modules/emscripten/system/include/libcxx/sstream +0 -972
  821. data/modules/emscripten/system/include/libcxx/stack +0 -292
  822. data/modules/emscripten/system/include/libcxx/stdexcept +0 -162
  823. data/modules/emscripten/system/include/libcxx/streambuf +0 -564
  824. data/modules/emscripten/system/include/libcxx/string +0 -4198
  825. data/modules/emscripten/system/include/libcxx/strstream +0 -400
  826. data/modules/emscripten/system/include/libcxx/support/ibm/limits.h +0 -99
  827. data/modules/emscripten/system/include/libcxx/support/ibm/support.h +0 -54
  828. data/modules/emscripten/system/include/libcxx/support/ibm/xlocale.h +0 -326
  829. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +0 -5
  830. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +0 -38
  831. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +0 -146
  832. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +0 -79
  833. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +0 -129
  834. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +0 -115
  835. data/modules/emscripten/system/include/libcxx/support/win32/support.h +0 -119
  836. data/modules/emscripten/system/include/libcxx/system_error +0 -642
  837. data/modules/emscripten/system/include/libcxx/tgmath.h +0 -29
  838. data/modules/emscripten/system/include/libcxx/thread +0 -458
  839. data/modules/emscripten/system/include/libcxx/tuple +0 -1102
  840. data/modules/emscripten/system/include/libcxx/type_traits +0 -3292
  841. data/modules/emscripten/system/include/libcxx/typeindex +0 -103
  842. data/modules/emscripten/system/include/libcxx/typeinfo +0 -124
  843. data/modules/emscripten/system/include/libcxx/unordered_map +0 -2078
  844. data/modules/emscripten/system/include/libcxx/unordered_set +0 -1379
  845. data/modules/emscripten/system/include/libcxx/utility +0 -768
  846. data/modules/emscripten/system/include/libcxx/valarray +0 -4779
  847. data/modules/emscripten/system/include/libcxx/vector +0 -3246
  848. data/modules/emscripten/system/include/unwind.h +0 -154
  849. data/modules/emscripten/system/include/uuid/uuid.h +0 -35
  850. data/modules/emscripten/system/include/zconf.h +0 -428
  851. data/modules/emscripten/system/include/zlib.h +0 -1613
  852. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +0 -97
  853. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +0 -47
  854. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +0 -116
  855. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +0 -46
  856. data/modules/emscripten/system/lib/compiler-rt/int_math.h +0 -67
  857. data/modules/emscripten/system/lib/compiler-rt/int_types.h +0 -140
  858. data/modules/emscripten/system/lib/compiler-rt/int_util.h +0 -29
  859. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +0 -56
  860. data/modules/emscripten/system/lib/compiler-rt/readme.txt +0 -20
  861. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +0 -36
  862. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +0 -251
  863. data/modules/emscripten/system/lib/debugging.cpp +0 -24
  864. data/modules/emscripten/system/lib/dlmalloc.c +0 -6297
  865. data/modules/emscripten/system/lib/embind/bind.cpp +0 -63
  866. data/modules/emscripten/system/lib/libc/gen/err.c +0 -49
  867. data/modules/emscripten/system/lib/libc/gen/errx.c +0 -49
  868. data/modules/emscripten/system/lib/libc/gen/verr.c +0 -58
  869. data/modules/emscripten/system/lib/libc/gen/verrx.c +0 -51
  870. data/modules/emscripten/system/lib/libc/gen/vwarn.c +0 -55
  871. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +0 -48
  872. data/modules/emscripten/system/lib/libc/gen/warn.c +0 -49
  873. data/modules/emscripten/system/lib/libc/gen/warnx.c +0 -49
  874. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +0 -92
  875. data/modules/emscripten/system/lib/libc/musl/readme.txt +0 -9
  876. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +0 -125
  877. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +0 -7
  878. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +0 -14
  879. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +0 -8
  880. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +0 -10
  881. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +0 -63
  882. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +0 -9
  883. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +0 -7
  884. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +0 -6
  885. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +0 -19
  886. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +0 -12
  887. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +0 -19
  888. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +0 -6
  889. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +0 -7
  890. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +0 -62
  891. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +0 -109
  892. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +0 -268
  893. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +0 -8
  894. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +0 -16
  895. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +0 -29
  896. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +0 -42
  897. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +0 -22
  898. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +0 -71
  899. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +0 -5
  900. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +0 -92
  901. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +0 -1085
  902. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +0 -238
  903. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +0 -1836
  904. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +0 -390
  905. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +0 -454
  906. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +0 -6
  907. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +0 -6
  908. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +0 -6
  909. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +0 -6
  910. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +0 -9
  911. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +0 -6
  912. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +0 -6
  913. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +0 -6
  914. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +0 -6
  915. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +0 -6
  916. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +0 -6
  917. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +0 -6
  918. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +0 -6
  919. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +0 -550
  920. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +0 -640
  921. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +0 -39
  922. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +0 -101
  923. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +0 -18
  924. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +0 -6
  925. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +0 -9
  926. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +0 -9
  927. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +0 -16
  928. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +0 -6
  929. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +0 -21
  930. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +0 -6
  931. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +0 -6
  932. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +0 -9
  933. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +0 -7
  934. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +0 -38
  935. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +0 -22
  936. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +0 -17
  937. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +0 -18
  938. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +0 -57
  939. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +0 -17
  940. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +0 -65
  941. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +0 -100
  942. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +0 -7
  943. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +0 -53
  944. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +0 -38
  945. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +0 -52
  946. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +0 -58
  947. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +0 -7
  948. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +0 -8
  949. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +0 -18
  950. data/modules/emscripten/system/lib/libc/musl/src/regex/regcomp.c +0 -3352
  951. data/modules/emscripten/system/lib/libc/musl/src/regex/regerror.c +0 -35
  952. data/modules/emscripten/system/lib/libc/musl/src/regex/regexec.c +0 -1011
  953. data/modules/emscripten/system/lib/libc/musl/src/regex/tre-mem.c +0 -158
  954. data/modules/emscripten/system/lib/libc/musl/src/regex/tre.h +0 -231
  955. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +0 -13
  956. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +0 -14
  957. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +0 -361
  958. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +0 -53
  959. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +0 -7
  960. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +0 -13
  961. data/modules/emscripten/system/lib/libc/musl/src/stdlib/ecvt.c +0 -19
  962. data/modules/emscripten/system/lib/libc/musl/src/stdlib/fcvt.c +0 -25
  963. data/modules/emscripten/system/lib/libc/musl/src/stdlib/gcvt.c +0 -8
  964. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +0 -6
  965. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +0 -6
  966. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +0 -7
  967. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +0 -6
  968. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +0 -7
  969. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +0 -8
  970. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +0 -7
  971. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +0 -8
  972. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +0 -10
  973. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +0 -11
  974. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +0 -8
  975. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +0 -9
  976. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +0 -6
  977. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +0 -10
  978. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +0 -7
  979. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +0 -9
  980. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +0 -8
  981. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +0 -7
  982. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +0 -8
  983. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +0 -8
  984. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +0 -108
  985. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +0 -12
  986. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +0 -6
  987. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +0 -8
  988. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +0 -8
  989. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +0 -9
  990. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +0 -12
  991. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +0 -9
  992. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +0 -511
  993. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +0 -305
  994. data/modules/emscripten/system/lib/libc.symbols +0 -81
  995. data/modules/emscripten/system/lib/libcextra.symbols +0 -115
  996. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +0 -123
  997. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +0 -76
  998. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +0 -84
  999. data/modules/emscripten/system/lib/libcxx/bind.cpp +0 -30
  1000. data/modules/emscripten/system/lib/libcxx/chrono.cpp +0 -132
  1001. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +0 -81
  1002. data/modules/emscripten/system/lib/libcxx/debug.cpp +0 -530
  1003. data/modules/emscripten/system/lib/libcxx/exception.cpp +0 -307
  1004. data/modules/emscripten/system/lib/libcxx/future.cpp +0 -291
  1005. data/modules/emscripten/system/lib/libcxx/hash.cpp +0 -570
  1006. data/modules/emscripten/system/lib/libcxx/ios.cpp +0 -460
  1007. data/modules/emscripten/system/lib/libcxx/iostream.cpp +0 -68
  1008. data/modules/emscripten/system/lib/libcxx/locale.cpp +0 -6169
  1009. data/modules/emscripten/system/lib/libcxx/memory.cpp +0 -223
  1010. data/modules/emscripten/system/lib/libcxx/mutex.cpp +0 -253
  1011. data/modules/emscripten/system/lib/libcxx/new.cpp +0 -239
  1012. data/modules/emscripten/system/lib/libcxx/optional.cpp +0 -25
  1013. data/modules/emscripten/system/lib/libcxx/random.cpp +0 -74
  1014. data/modules/emscripten/system/lib/libcxx/readme.txt +0 -1
  1015. data/modules/emscripten/system/lib/libcxx/regex.cpp +0 -325
  1016. data/modules/emscripten/system/lib/libcxx/shared_mutex.cpp +0 -101
  1017. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +0 -200
  1018. data/modules/emscripten/system/lib/libcxx/string.cpp +0 -530
  1019. data/modules/emscripten/system/lib/libcxx/strstream.cpp +0 -329
  1020. data/modules/emscripten/system/lib/libcxx/support/solaris/README +0 -4
  1021. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +0 -76
  1022. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +0 -93
  1023. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +0 -245
  1024. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +0 -95
  1025. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +0 -166
  1026. data/modules/emscripten/system/lib/libcxx/symbols +0 -2699
  1027. data/modules/emscripten/system/lib/libcxx/system_error.cpp +0 -205
  1028. data/modules/emscripten/system/lib/libcxx/thread.cpp +0 -225
  1029. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +0 -73
  1030. data/modules/emscripten/system/lib/libcxx/utility.cpp +0 -17
  1031. data/modules/emscripten/system/lib/libcxx/valarray.cpp +0 -56
  1032. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +0 -38
  1033. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +0 -76
  1034. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +0 -167
  1035. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +0 -175
  1036. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +0 -99
  1037. data/modules/emscripten/system/lib/libcxxabi/readme.txt +0 -1
  1038. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +0 -50
  1039. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +0 -33
  1040. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +0 -34
  1041. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +0 -11036
  1042. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +0 -622
  1043. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +0 -123
  1044. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +0 -91
  1045. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +0 -231
  1046. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +0 -125
  1047. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +0 -54
  1048. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +0 -242
  1049. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +0 -1055
  1050. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +0 -27
  1051. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +0 -367
  1052. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +0 -31
  1053. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +0 -41
  1054. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +0 -174
  1055. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +0 -1146
  1056. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +0 -248
  1057. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +0 -169
  1058. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +0 -53
  1059. data/modules/emscripten/system/lib/libcxxabi/symbols +0 -236
  1060. data/modules/emscripten/system/lib/sdl.cpp +0 -13
  1061. data/modules/emscripten/system/lib/sdl.symbols +0 -1
  1062. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +0 -2347
  1063. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +0 -4
  1064. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +0 -657
  1065. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +0 -147
  1066. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +0 -74
  1067. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +0 -249
  1068. data/modules/emscripten/third_party/CppHeaderParser/README.html +0 -544
  1069. data/modules/emscripten/third_party/CppHeaderParser/README.txt +0 -226
  1070. data/modules/emscripten/third_party/CppHeaderParser/setup.py +0 -43
  1071. data/modules/emscripten/third_party/ansidecl.h +0 -371
  1072. data/modules/emscripten/third_party/closure-compiler/COPYING +0 -202
  1073. data/modules/emscripten/third_party/closure-compiler/README +0 -292
  1074. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  1075. data/modules/emscripten/third_party/closure-compiler/readme.txt +0 -3
  1076. data/modules/emscripten/third_party/cp-demangle.h +0 -161
  1077. data/modules/emscripten/third_party/demangle.h +0 -549
  1078. data/modules/emscripten/third_party/demangler.py +0 -49
  1079. data/modules/emscripten/third_party/gcc_demangler.c +0 -4226
  1080. data/modules/emscripten/third_party/gcc_demangler.js +0 -21282
  1081. data/modules/emscripten/third_party/jni/emjvm.cpp +0 -133
  1082. data/modules/emscripten/third_party/jni/emjvm.h +0 -8
  1083. data/modules/emscripten/third_party/jni/emjvm.js +0 -185
  1084. data/modules/emscripten/third_party/jni/jni.h +0 -1154
  1085. data/modules/emscripten/third_party/libiberty.h +0 -634
  1086. data/modules/emscripten/third_party/lzma.js/README.markdown +0 -37
  1087. data/modules/emscripten/third_party/lzma.js/doit.bat +0 -4
  1088. data/modules/emscripten/third_party/lzma.js/doit.sh +0 -44
  1089. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +0 -7
  1090. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +0 -676
  1091. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +0 -201
  1092. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +0 -56
  1093. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +0 -160
  1094. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +0 -138
  1095. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +0 -22
  1096. data/modules/emscripten/third_party/lzma.js/lzip/README +0 -77
  1097. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +0 -204
  1098. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +0 -106
  1099. data/modules/emscripten/third_party/lzma.js/lzip/configure +0 -192
  1100. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +0 -252
  1101. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +0 -268
  1102. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +0 -643
  1103. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +0 -582
  1104. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +0 -378
  1105. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +0 -171
  1106. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +0 -264
  1107. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +0 -545
  1108. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +0 -27
  1109. data/modules/emscripten/third_party/lzma.js/lzma-full.js +0 -27
  1110. data/modules/emscripten/third_party/lzma.js/native_test.sh +0 -5
  1111. data/modules/emscripten/third_party/lzma.js/post.js +0 -13
  1112. data/modules/emscripten/third_party/lzma.js/pre.js +0 -13
  1113. data/modules/emscripten/third_party/lzma.js/test-decoder.js +0 -39
  1114. data/modules/emscripten/third_party/lzma.js/test-full.html +0 -9
  1115. data/modules/emscripten/third_party/lzma.js/test-full.js +0 -78
  1116. data/modules/emscripten/third_party/ply/ANNOUNCE +0 -40
  1117. data/modules/emscripten/third_party/ply/CHANGES +0 -1093
  1118. data/modules/emscripten/third_party/ply/PKG-INFO +0 -22
  1119. data/modules/emscripten/third_party/ply/README +0 -271
  1120. data/modules/emscripten/third_party/ply/TODO +0 -16
  1121. data/modules/emscripten/third_party/ply/doc/internal.html +0 -874
  1122. data/modules/emscripten/third_party/ply/doc/makedoc.py +0 -194
  1123. data/modules/emscripten/third_party/ply/doc/ply.html +0 -3262
  1124. data/modules/emscripten/third_party/ply/example/BASIC/README +0 -79
  1125. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +0 -71
  1126. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +0 -74
  1127. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +0 -79
  1128. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +0 -441
  1129. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +0 -424
  1130. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +0 -14
  1131. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +0 -5
  1132. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +0 -22
  1133. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +0 -13
  1134. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +0 -4
  1135. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +0 -17
  1136. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +0 -12
  1137. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +0 -13
  1138. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +0 -4
  1139. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +0 -20
  1140. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +0 -18
  1141. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +0 -5
  1142. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +0 -4
  1143. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +0 -709
  1144. data/modules/emscripten/third_party/ply/example/GardenSnake/README +0 -5
  1145. data/modules/emscripten/third_party/ply/example/README +0 -10
  1146. data/modules/emscripten/third_party/ply/example/ansic/README +0 -2
  1147. data/modules/emscripten/third_party/ply/example/ansic/clex.py +0 -164
  1148. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +0 -863
  1149. data/modules/emscripten/third_party/ply/example/calc/calc.py +0 -107
  1150. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +0 -113
  1151. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +0 -157
  1152. data/modules/emscripten/third_party/ply/example/cleanup.sh +0 -2
  1153. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +0 -130
  1154. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +0 -48
  1155. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +0 -160
  1156. data/modules/emscripten/third_party/ply/example/optcalc/README +0 -9
  1157. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +0 -119
  1158. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +0 -117
  1159. data/modules/emscripten/third_party/ply/example/yply/README +0 -41
  1160. data/modules/emscripten/third_party/ply/example/yply/ylex.py +0 -112
  1161. data/modules/emscripten/third_party/ply/example/yply/yparse.py +0 -217
  1162. data/modules/emscripten/third_party/ply/example/yply/yply.py +0 -53
  1163. data/modules/emscripten/third_party/ply/ply/__init__.py +0 -4
  1164. data/modules/emscripten/third_party/ply/ply/cpp.py +0 -898
  1165. data/modules/emscripten/third_party/ply/ply/ctokens.py +0 -133
  1166. data/modules/emscripten/third_party/ply/ply/lex.py +0 -1058
  1167. data/modules/emscripten/third_party/ply/ply/yacc.py +0 -3276
  1168. data/modules/emscripten/third_party/ply/setup.py +0 -31
  1169. data/modules/emscripten/third_party/ply/test/README +0 -7
  1170. data/modules/emscripten/third_party/ply/test/calclex.py +0 -49
  1171. data/modules/emscripten/third_party/ply/test/cleanup.sh +0 -4
  1172. data/modules/emscripten/third_party/ply/test/lex_closure.py +0 -54
  1173. data/modules/emscripten/third_party/ply/test/lex_doc1.py +0 -26
  1174. data/modules/emscripten/third_party/ply/test/lex_dup1.py +0 -29
  1175. data/modules/emscripten/third_party/ply/test/lex_dup2.py +0 -33
  1176. data/modules/emscripten/third_party/ply/test/lex_dup3.py +0 -31
  1177. data/modules/emscripten/third_party/ply/test/lex_empty.py +0 -20
  1178. data/modules/emscripten/third_party/ply/test/lex_error1.py +0 -24
  1179. data/modules/emscripten/third_party/ply/test/lex_error2.py +0 -26
  1180. data/modules/emscripten/third_party/ply/test/lex_error3.py +0 -27
  1181. data/modules/emscripten/third_party/ply/test/lex_error4.py +0 -27
  1182. data/modules/emscripten/third_party/ply/test/lex_hedit.py +0 -47
  1183. data/modules/emscripten/third_party/ply/test/lex_ignore.py +0 -31
  1184. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +0 -29
  1185. data/modules/emscripten/third_party/ply/test/lex_literal1.py +0 -25
  1186. data/modules/emscripten/third_party/ply/test/lex_literal2.py +0 -25
  1187. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +0 -27
  1188. data/modules/emscripten/third_party/ply/test/lex_module.py +0 -10
  1189. data/modules/emscripten/third_party/ply/test/lex_module_import.py +0 -42
  1190. data/modules/emscripten/third_party/ply/test/lex_object.py +0 -55
  1191. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +0 -54
  1192. data/modules/emscripten/third_party/ply/test/lex_optimize.py +0 -50
  1193. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +0 -50
  1194. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +0 -52
  1195. data/modules/emscripten/third_party/ply/test/lex_re1.py +0 -27
  1196. data/modules/emscripten/third_party/ply/test/lex_re2.py +0 -27
  1197. data/modules/emscripten/third_party/ply/test/lex_re3.py +0 -29
  1198. data/modules/emscripten/third_party/ply/test/lex_rule1.py +0 -27
  1199. data/modules/emscripten/third_party/ply/test/lex_rule2.py +0 -29
  1200. data/modules/emscripten/third_party/ply/test/lex_rule3.py +0 -27
  1201. data/modules/emscripten/third_party/ply/test/lex_state1.py +0 -40
  1202. data/modules/emscripten/third_party/ply/test/lex_state2.py +0 -40
  1203. data/modules/emscripten/third_party/ply/test/lex_state3.py +0 -42
  1204. data/modules/emscripten/third_party/ply/test/lex_state4.py +0 -41
  1205. data/modules/emscripten/third_party/ply/test/lex_state5.py +0 -40
  1206. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +0 -39
  1207. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +0 -40
  1208. data/modules/emscripten/third_party/ply/test/lex_state_try.py +0 -45
  1209. data/modules/emscripten/third_party/ply/test/lex_token1.py +0 -19
  1210. data/modules/emscripten/third_party/ply/test/lex_token2.py +0 -22
  1211. data/modules/emscripten/third_party/ply/test/lex_token3.py +0 -24
  1212. data/modules/emscripten/third_party/ply/test/lex_token4.py +0 -26
  1213. data/modules/emscripten/third_party/ply/test/lex_token5.py +0 -31
  1214. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +0 -29
  1215. data/modules/emscripten/third_party/ply/test/testlex.py +0 -606
  1216. data/modules/emscripten/third_party/ply/test/testyacc.py +0 -347
  1217. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +0 -68
  1218. data/modules/emscripten/third_party/ply/test/yacc_badid.py +0 -77
  1219. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +0 -64
  1220. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +0 -68
  1221. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +0 -68
  1222. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +0 -68
  1223. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +0 -68
  1224. data/modules/emscripten/third_party/ply/test/yacc_dup.py +0 -68
  1225. data/modules/emscripten/third_party/ply/test/yacc_error1.py +0 -68
  1226. data/modules/emscripten/third_party/ply/test/yacc_error2.py +0 -68
  1227. data/modules/emscripten/third_party/ply/test/yacc_error3.py +0 -67
  1228. data/modules/emscripten/third_party/ply/test/yacc_error4.py +0 -72
  1229. data/modules/emscripten/third_party/ply/test/yacc_inf.py +0 -56
  1230. data/modules/emscripten/third_party/ply/test/yacc_literal.py +0 -69
  1231. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +0 -68
  1232. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +0 -68
  1233. data/modules/emscripten/third_party/ply/test/yacc_nested.py +0 -33
  1234. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +0 -67
  1235. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +0 -66
  1236. data/modules/emscripten/third_party/ply/test/yacc_nop.py +0 -68
  1237. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +0 -66
  1238. data/modules/emscripten/third_party/ply/test/yacc_notok.py +0 -67
  1239. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +0 -68
  1240. data/modules/emscripten/third_party/ply/test/yacc_rr.py +0 -72
  1241. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +0 -30
  1242. data/modules/emscripten/third_party/ply/test/yacc_simple.py +0 -68
  1243. data/modules/emscripten/third_party/ply/test/yacc_sr.py +0 -63
  1244. data/modules/emscripten/third_party/ply/test/yacc_term1.py +0 -68
  1245. data/modules/emscripten/third_party/ply/test/yacc_unused.py +0 -77
  1246. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +0 -72
  1247. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +0 -63
  1248. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +0 -63
  1249. data/modules/emscripten/third_party/readme.txt +0 -7
  1250. data/modules/emscripten/third_party/stb_image.c +0 -4673
  1251. data/modules/emscripten/third_party/websockify/CHANGES.txt +0 -23
  1252. data/modules/emscripten/third_party/websockify/LICENSE.txt +0 -16
  1253. data/modules/emscripten/third_party/websockify/MANIFEST.in +0 -1
  1254. data/modules/emscripten/third_party/websockify/Makefile +0 -11
  1255. data/modules/emscripten/third_party/websockify/README.md +0 -168
  1256. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +0 -39
  1257. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +0 -24
  1258. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +0 -61
  1259. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +0 -19
  1260. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +0 -129
  1261. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +0 -36
  1262. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +0 -37
  1263. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +0 -41
  1264. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +0 -75
  1265. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +0 -20
  1266. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +0 -621
  1267. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +0 -165
  1268. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +0 -373
  1269. data/modules/emscripten/third_party/websockify/docs/TODO +0 -9
  1270. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +0 -4
  1271. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +0 -114
  1272. data/modules/emscripten/third_party/websockify/docs/notes +0 -17
  1273. data/modules/emscripten/third_party/websockify/docs/release.txt +0 -9
  1274. data/modules/emscripten/third_party/websockify/docs/websockify.1 +0 -110
  1275. data/modules/emscripten/third_party/websockify/include/VT100.js +0 -919
  1276. data/modules/emscripten/third_party/websockify/include/base64.js +0 -114
  1277. data/modules/emscripten/third_party/websockify/include/keysym.js +0 -99
  1278. data/modules/emscripten/third_party/websockify/include/util.js +0 -359
  1279. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +0 -109
  1280. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  1281. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +0 -4
  1282. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +0 -391
  1283. data/modules/emscripten/third_party/websockify/include/websock.js +0 -422
  1284. data/modules/emscripten/third_party/websockify/include/webutil.js +0 -216
  1285. data/modules/emscripten/third_party/websockify/include/wsirc.js +0 -235
  1286. data/modules/emscripten/third_party/websockify/include/wstelnet.js +0 -335
  1287. data/modules/emscripten/third_party/websockify/other/Makefile +0 -14
  1288. data/modules/emscripten/third_party/websockify/other/README.md +0 -51
  1289. data/modules/emscripten/third_party/websockify/other/launch.sh +0 -108
  1290. data/modules/emscripten/third_party/websockify/other/project.clj +0 -13
  1291. data/modules/emscripten/third_party/websockify/other/websocket.c +0 -802
  1292. data/modules/emscripten/third_party/websockify/other/websocket.h +0 -84
  1293. data/modules/emscripten/third_party/websockify/other/websocket.rb +0 -456
  1294. data/modules/emscripten/third_party/websockify/other/websockify.c +0 -385
  1295. data/modules/emscripten/third_party/websockify/other/websockify.clj +0 -233
  1296. data/modules/emscripten/third_party/websockify/other/websockify.js +0 -196
  1297. data/modules/emscripten/third_party/websockify/other/websockify.rb +0 -171
  1298. data/modules/emscripten/third_party/websockify/other/wswrap +0 -22
  1299. data/modules/emscripten/third_party/websockify/rebind +0 -18
  1300. data/modules/emscripten/third_party/websockify/rebind.c +0 -94
  1301. data/modules/emscripten/third_party/websockify/run +0 -5
  1302. data/modules/emscripten/third_party/websockify/setup.py +0 -30
  1303. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +0 -29
  1304. data/modules/emscripten/third_party/websockify/tests/base64.html +0 -91
  1305. data/modules/emscripten/third_party/websockify/tests/base64.js +0 -12
  1306. data/modules/emscripten/third_party/websockify/tests/echo.html +0 -148
  1307. data/modules/emscripten/third_party/websockify/tests/echo.py +0 -75
  1308. data/modules/emscripten/third_party/websockify/tests/echo.rb +0 -62
  1309. data/modules/emscripten/third_party/websockify/tests/latency.html +0 -290
  1310. data/modules/emscripten/third_party/websockify/tests/latency.py +0 -75
  1311. data/modules/emscripten/third_party/websockify/tests/load.html +0 -250
  1312. data/modules/emscripten/third_party/websockify/tests/load.py +0 -167
  1313. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +0 -168
  1314. data/modules/emscripten/third_party/websockify/tests/simple.html +0 -68
  1315. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +0 -22
  1316. data/modules/emscripten/third_party/websockify/websockify/__init__.py +0 -2
  1317. data/modules/emscripten/third_party/websockify/websockify/websocket.py +0 -982
  1318. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +0 -393
  1319. data/modules/emscripten/third_party/websockify/websockify.py +0 -5
  1320. data/modules/emscripten/third_party/websockify/wsirc.html +0 -99
  1321. data/modules/emscripten/third_party/websockify/wstelnet.html +0 -74
  1322. data/modules/emscripten/tools/__init__.py +0 -0
  1323. data/modules/emscripten/tools/asm_module.py +0 -275
  1324. data/modules/emscripten/tools/autodebugger.py +0 -291
  1325. data/modules/emscripten/tools/autodebugger_c.py +0 -37
  1326. data/modules/emscripten/tools/autodebugger_indenter.py +0 -18
  1327. data/modules/emscripten/tools/autodebugger_js.py +0 -47
  1328. data/modules/emscripten/tools/autodediffer.py +0 -60
  1329. data/modules/emscripten/tools/bindings_generator.py +0 -832
  1330. data/modules/emscripten/tools/bisect_pair.py +0 -88
  1331. data/modules/emscripten/tools/cache.py +0 -196
  1332. data/modules/emscripten/tools/clean_webconsole.py +0 -34
  1333. data/modules/emscripten/tools/crunch-worker.js +0 -124
  1334. data/modules/emscripten/tools/diff_autodebugger.py +0 -15
  1335. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -307
  1336. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -382
  1337. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +0 -6136
  1338. data/modules/emscripten/tools/eliminator/eliminator-test.js +0 -8879
  1339. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +0 -888
  1340. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +0 -463
  1341. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +0 -317
  1342. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +0 -75
  1343. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +0 -75
  1344. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +0 -1363
  1345. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +0 -2005
  1346. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +0 -51
  1347. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +0 -22
  1348. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +0 -28
  1349. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +0 -402
  1350. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +0 -1
  1351. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +0 -1
  1352. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +0 -1
  1353. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +0 -1
  1354. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +0 -1
  1355. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +0 -1
  1356. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +0 -1
  1357. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +0 -1
  1358. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +0 -1
  1359. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +0 -1
  1360. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +0 -1
  1361. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +0 -1
  1362. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +0 -1
  1363. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +0 -1
  1364. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +0 -1
  1365. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +0 -1
  1366. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +0 -1
  1367. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +0 -1
  1368. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +0 -1
  1369. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +0 -1
  1370. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +0 -1
  1371. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +0 -1
  1372. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +0 -1
  1373. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +0 -1
  1374. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +0 -1
  1375. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +0 -1
  1376. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +0 -1
  1377. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +0 -1
  1378. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +0 -1
  1379. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +0 -1
  1380. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +0 -1
  1381. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +0 -1
  1382. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +0 -1
  1383. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +0 -1
  1384. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +0 -1
  1385. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +0 -1
  1386. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +0 -1
  1387. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +0 -1
  1388. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +0 -3
  1389. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +0 -4
  1390. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +0 -4
  1391. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +0 -6
  1392. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +0 -20
  1393. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +0 -3
  1394. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +0 -5
  1395. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +0 -4
  1396. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +0 -10
  1397. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +0 -6
  1398. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +0 -9
  1399. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +0 -16
  1400. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +0 -1
  1401. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +0 -3
  1402. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +0 -1
  1403. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +0 -1
  1404. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +0 -1
  1405. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +0 -4
  1406. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +0 -1
  1407. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +0 -6
  1408. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +0 -7
  1409. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +0 -1
  1410. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +0 -3
  1411. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +0 -1
  1412. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +0 -3
  1413. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +0 -3
  1414. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +0 -3
  1415. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +0 -1
  1416. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +0 -9
  1417. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +0 -1
  1418. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +0 -3
  1419. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +0 -5
  1420. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +0 -1
  1421. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +0 -4
  1422. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +0 -5
  1423. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +0 -3
  1424. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +0 -3
  1425. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +0 -2
  1426. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +0 -55
  1427. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +0 -33
  1428. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +0 -97
  1429. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +0 -138
  1430. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +0 -16
  1431. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +0 -17
  1432. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +0 -85
  1433. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +0 -103
  1434. data/modules/emscripten/tools/emconfiguren.py +0 -19
  1435. data/modules/emscripten/tools/emmaken.py +0 -230
  1436. data/modules/emscripten/tools/emmakenxx.py +0 -18
  1437. data/modules/emscripten/tools/exec_llvm.py +0 -50
  1438. data/modules/emscripten/tools/file2json.py +0 -49
  1439. data/modules/emscripten/tools/file_packager.py +0 -719
  1440. data/modules/emscripten/tools/find_bigfuncs.py +0 -23
  1441. data/modules/emscripten/tools/find_bigis.py +0 -18
  1442. data/modules/emscripten/tools/find_bigvars.py +0 -24
  1443. data/modules/emscripten/tools/fix_closure.py +0 -88
  1444. data/modules/emscripten/tools/gen_struct_info.py +0 -509
  1445. data/modules/emscripten/tools/ie7_fix.py +0 -14
  1446. data/modules/emscripten/tools/js-optimizer.js +0 -4023
  1447. data/modules/emscripten/tools/js_optimizer.py +0 -357
  1448. data/modules/emscripten/tools/jsrun.py +0 -37
  1449. data/modules/emscripten/tools/ll-strip.py +0 -56
  1450. data/modules/emscripten/tools/make_file.py +0 -19
  1451. data/modules/emscripten/tools/make_minigzip.py +0 -13
  1452. data/modules/emscripten/tools/merge_asm.py +0 -26
  1453. data/modules/emscripten/tools/namespacer.py +0 -95
  1454. data/modules/emscripten/tools/nativize_llvm.py +0 -34
  1455. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +0 -58
  1456. data/modules/emscripten/tools/node_modules/source-map/LICENSE +0 -28
  1457. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +0 -166
  1458. data/modules/emscripten/tools/node_modules/source-map/README.md +0 -347
  1459. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +0 -56
  1460. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +0 -152
  1461. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1462. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1463. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +0 -8
  1464. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1465. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +0 -21
  1466. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +0 -8
  1467. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +0 -3
  1468. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +0 -96
  1469. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +0 -144
  1470. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +0 -42
  1471. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +0 -81
  1472. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -430
  1473. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +0 -381
  1474. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +0 -353
  1475. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +0 -117
  1476. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +0 -8
  1477. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +0 -58
  1478. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1479. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1480. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +0 -33
  1481. data/modules/emscripten/tools/node_modules/source-map/package.json +0 -74
  1482. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +0 -73
  1483. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +0 -26
  1484. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +0 -71
  1485. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -24
  1486. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +0 -35
  1487. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +0 -54
  1488. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -72
  1489. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -306
  1490. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -391
  1491. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +0 -282
  1492. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +0 -152
  1493. data/modules/emscripten/tools/reproduceriter.js +0 -216
  1494. data/modules/emscripten/tools/reproduceriter.py +0 -160
  1495. data/modules/emscripten/tools/response_file.py +0 -34
  1496. data/modules/emscripten/tools/scan_js.py +0 -20
  1497. data/modules/emscripten/tools/scan_ll.py +0 -18
  1498. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +0 -3
  1499. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +0 -46
  1500. data/modules/emscripten/tools/settings_template_readonly.py +0 -49
  1501. data/modules/emscripten/tools/shared.py +0 -1705
  1502. data/modules/emscripten/tools/source-maps/sourcemap2json.js +0 -15
  1503. data/modules/emscripten/tools/source-maps/sourcemapper.js +0 -208
  1504. data/modules/emscripten/tools/split.py +0 -105
  1505. data/modules/emscripten/tools/split_asm.py +0 -30
  1506. data/modules/emscripten/tools/tempfiles.py +0 -41
  1507. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +0 -75
  1508. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +0 -91
  1509. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +0 -2
  1510. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +0 -8
  1511. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +0 -929
  1512. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +0 -351
  1513. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +0 -793
  1514. data/modules/emscripten/tools/test-js-optimizer-asm-outline2.js +0 -606
  1515. data/modules/emscripten/tools/test-js-optimizer-asm-outline3-output.js +0 -28
  1516. data/modules/emscripten/tools/test-js-optimizer-asm-outline3.js +0 -30
  1517. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -522
  1518. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -533
  1519. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +0 -36
  1520. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +0 -37
  1521. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +0 -106
  1522. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +0 -110
  1523. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +0 -9
  1524. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +0 -12
  1525. data/modules/emscripten/tools/test-js-optimizer-output.js +0 -291
  1526. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +0 -232
  1527. data/modules/emscripten/tools/test-js-optimizer-regs.js +0 -237
  1528. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +0 -91
  1529. data/modules/emscripten/tools/test-js-optimizer-t2.js +0 -92
  1530. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +0 -17
  1531. data/modules/emscripten/tools/test-js-optimizer-t2c.js +0 -18
  1532. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +0 -49
  1533. data/modules/emscripten/tools/test-js-optimizer-t3.js +0 -50
  1534. data/modules/emscripten/tools/test-js-optimizer.js +0 -401
  1535. data/modules/emscripten/tools/validate_asmjs.py +0 -82
  1536. data/modules/mruby/mrblib/print.rb +0 -18
  1537. data/modules/mruby/src/re.h +0 -12
@@ -1,3292 +0,0 @@
1
- // -*- C++ -*-
2
- //===------------------------ type_traits ---------------------------------===//
3
- //
4
- // The LLVM Compiler Infrastructure
5
- //
6
- // This file is dual licensed under the MIT and the University of Illinois Open
7
- // Source Licenses. See LICENSE.TXT for details.
8
- //
9
- //===----------------------------------------------------------------------===//
10
-
11
- #ifndef _LIBCPP_TYPE_TRAITS
12
- #define _LIBCPP_TYPE_TRAITS
13
-
14
- /*
15
- type_traits synopsis
16
-
17
- namespace std
18
- {
19
-
20
- // helper class:
21
- template <class T, T v> struct integral_constant;
22
- typedef integral_constant<bool, true> true_type;
23
- typedef integral_constant<bool, false> false_type;
24
-
25
- // helper traits
26
- template <bool, class T = void> struct enable_if;
27
- template <bool, class T, class F> struct conditional;
28
-
29
- // Primary classification traits:
30
- template <class T> struct is_void;
31
- template <class T> struct is_null_pointer; // C++14
32
- template <class T> struct is_integral;
33
- template <class T> struct is_floating_point;
34
- template <class T> struct is_array;
35
- template <class T> struct is_pointer;
36
- template <class T> struct is_lvalue_reference;
37
- template <class T> struct is_rvalue_reference;
38
- template <class T> struct is_member_object_pointer;
39
- template <class T> struct is_member_function_pointer;
40
- template <class T> struct is_enum;
41
- template <class T> struct is_union;
42
- template <class T> struct is_class;
43
- template <class T> struct is_function;
44
-
45
- // Secondary classification traits:
46
- template <class T> struct is_reference;
47
- template <class T> struct is_arithmetic;
48
- template <class T> struct is_fundamental;
49
- template <class T> struct is_member_pointer;
50
- template <class T> struct is_scalar;
51
- template <class T> struct is_object;
52
- template <class T> struct is_compound;
53
-
54
- // Const-volatile properties and transformations:
55
- template <class T> struct is_const;
56
- template <class T> struct is_volatile;
57
- template <class T> struct remove_const;
58
- template <class T> struct remove_volatile;
59
- template <class T> struct remove_cv;
60
- template <class T> struct add_const;
61
- template <class T> struct add_volatile;
62
- template <class T> struct add_cv;
63
-
64
- // Reference transformations:
65
- template <class T> struct remove_reference;
66
- template <class T> struct add_lvalue_reference;
67
- template <class T> struct add_rvalue_reference;
68
-
69
- // Pointer transformations:
70
- template <class T> struct remove_pointer;
71
- template <class T> struct add_pointer;
72
-
73
- // Integral properties:
74
- template <class T> struct is_signed;
75
- template <class T> struct is_unsigned;
76
- template <class T> struct make_signed;
77
- template <class T> struct make_unsigned;
78
-
79
- // Array properties and transformations:
80
- template <class T> struct rank;
81
- template <class T, unsigned I = 0> struct extent;
82
- template <class T> struct remove_extent;
83
- template <class T> struct remove_all_extents;
84
-
85
- // Member introspection:
86
- template <class T> struct is_pod;
87
- template <class T> struct is_trivial;
88
- template <class T> struct is_trivially_copyable;
89
- template <class T> struct is_standard_layout;
90
- template <class T> struct is_literal_type;
91
- template <class T> struct is_empty;
92
- template <class T> struct is_polymorphic;
93
- template <class T> struct is_abstract;
94
-
95
- template <class T, class... Args> struct is_constructible;
96
- template <class T> struct is_default_constructible;
97
- template <class T> struct is_copy_constructible;
98
- template <class T> struct is_move_constructible;
99
- template <class T, class U> struct is_assignable;
100
- template <class T> struct is_copy_assignable;
101
- template <class T> struct is_move_assignable;
102
- template <class T> struct is_destructible;
103
-
104
- template <class T, class... Args> struct is_trivially_constructible;
105
- template <class T> struct is_trivially_default_constructible;
106
- template <class T> struct is_trivially_copy_constructible;
107
- template <class T> struct is_trivially_move_constructible;
108
- template <class T, class U> struct is_trivially_assignable;
109
- template <class T> struct is_trivially_copy_assignable;
110
- template <class T> struct is_trivially_move_assignable;
111
- template <class T> struct is_trivially_destructible;
112
-
113
- template <class T, class... Args> struct is_nothrow_constructible;
114
- template <class T> struct is_nothrow_default_constructible;
115
- template <class T> struct is_nothrow_copy_constructible;
116
- template <class T> struct is_nothrow_move_constructible;
117
- template <class T, class U> struct is_nothrow_assignable;
118
- template <class T> struct is_nothrow_copy_assignable;
119
- template <class T> struct is_nothrow_move_assignable;
120
- template <class T> struct is_nothrow_destructible;
121
-
122
- template <class T> struct has_virtual_destructor;
123
-
124
- // Relationships between types:
125
- template <class T, class U> struct is_same;
126
- template <class Base, class Derived> struct is_base_of;
127
- template <class From, class To> struct is_convertible;
128
-
129
- // Alignment properties and transformations:
130
- template <class T> struct alignment_of;
131
- template <size_t Len, size_t Align = most_stringent_alignment_requirement>
132
- struct aligned_storage;
133
- template <size_t Len, class... Types> struct aligned_union;
134
-
135
- template <class T> struct decay;
136
- template <class... T> struct common_type;
137
- template <class T> struct underlying_type;
138
- template <class> class result_of; // undefined
139
- template <class Fn, class... ArgTypes> class result_of<Fn(ArgTypes...)>;
140
-
141
- // const-volatile modifications:
142
- template <class T>
143
- using remove_const_t = typename remove_const<T>::type; // C++14
144
- template <class T>
145
- using remove_volatile_t = typename remove_volatile<T>::type; // C++14
146
- template <class T>
147
- using remove_cv_t = typename remove_cv<T>::type; // C++14
148
- template <class T>
149
- using add_const_t = typename add_const<T>::type; // C++14
150
- template <class T>
151
- using add_volatile_t = typename add_volatile<T>::type; // C++14
152
- template <class T>
153
- using add_cv_t = typename add_cv<T>::type; // C++14
154
-
155
- // reference modifications:
156
- template <class T>
157
- using remove_reference_t = typename remove_reference<T>::type; // C++14
158
- template <class T>
159
- using add_lvalue_reference_t = typename add_lvalue_reference<T>::type; // C++14
160
- template <class T>
161
- using add_rvalue_reference_t = typename add_rvalue_reference<T>::type; // C++14
162
-
163
- // sign modifications:
164
- template <class T>
165
- using make_signed_t = typename make_signed<T>::type; // C++14
166
- template <class T>
167
- using make_unsigned_t = typename make_unsigned<T>::type; // C++14
168
-
169
- // array modifications:
170
- template <class T>
171
- using remove_extent_t = typename remove_extent<T>::type; // C++14
172
- template <class T>
173
- using remove_all_extents_t = typename remove_all_extents<T>::type; // C++14
174
-
175
- // pointer modifications:
176
- template <class T>
177
- using remove_pointer_t = typename remove_pointer<T>::type; // C++14
178
- template <class T>
179
- using add_pointer_t = typename add_pointer<T>::type; // C++14
180
-
181
- // other transformations:
182
- template <size_t Len, std::size_t Align=default-alignment>
183
- using aligned_storage_t = typename aligned_storage<Len,Align>::type; // C++14
184
- template <std::size_t Len, class... Types>
185
- using aligned_union_t = typename aligned_union<Len,Types...>::type; // C++14
186
- template <class T>
187
- using decay_t = typename decay<T>::type; // C++14
188
- template <bool b, class T=void>
189
- using enable_if_t = typename enable_if<b,T>::type; // C++14
190
- template <bool b, class T, class F>
191
- using conditional_t = typename conditional<b,T,F>::type; // C++14
192
- template <class... T>
193
- using common_type_t = typename common_type<T...>::type; // C++14
194
- template <class T>
195
- using underlying_type_t = typename underlying_type<T>::type; // C++14
196
- template <class F, class... ArgTypes>
197
- using result_of_t = typename result_of<F(ArgTypes...)>::type; // C++14
198
-
199
- } // std
200
-
201
- */
202
- #include <__config>
203
- #include <cstddef>
204
-
205
- #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
206
- #pragma GCC system_header
207
- #endif
208
-
209
- _LIBCPP_BEGIN_NAMESPACE_STD
210
-
211
- template <bool _Bp, class _If, class _Then>
212
- struct _LIBCPP_TYPE_VIS_ONLY conditional {typedef _If type;};
213
- template <class _If, class _Then>
214
- struct _LIBCPP_TYPE_VIS_ONLY conditional<false, _If, _Then> {typedef _Then type;};
215
-
216
- #if _LIBCPP_STD_VER > 11
217
- template <bool _Bp, class _If, class _Then> using conditional_t = typename conditional<_Bp, _If, _Then>::type;
218
- #endif
219
-
220
- template <bool, class _Tp = void> struct _LIBCPP_TYPE_VIS_ONLY enable_if {};
221
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY enable_if<true, _Tp> {typedef _Tp type;};
222
-
223
- #if _LIBCPP_STD_VER > 11
224
- template <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type;
225
- #endif
226
-
227
-
228
- struct __two {char __lx[2];};
229
-
230
- // helper class:
231
-
232
- template <class _Tp, _Tp __v>
233
- struct _LIBCPP_TYPE_VIS_ONLY integral_constant
234
- {
235
- static _LIBCPP_CONSTEXPR const _Tp value = __v;
236
- typedef _Tp value_type;
237
- typedef integral_constant type;
238
- _LIBCPP_INLINE_VISIBILITY
239
- _LIBCPP_CONSTEXPR operator value_type() const {return value;}
240
- #if _LIBCPP_STD_VER > 11
241
- _LIBCPP_INLINE_VISIBILITY
242
- constexpr value_type operator ()() const {return value;}
243
- #endif
244
- };
245
-
246
- template <class _Tp, _Tp __v>
247
- _LIBCPP_CONSTEXPR const _Tp integral_constant<_Tp, __v>::value;
248
-
249
- typedef integral_constant<bool, true> true_type;
250
- typedef integral_constant<bool, false> false_type;
251
-
252
- // is_const
253
-
254
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_const : public false_type {};
255
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_const<_Tp const> : public true_type {};
256
-
257
- // is_volatile
258
-
259
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_volatile : public false_type {};
260
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_volatile<_Tp volatile> : public true_type {};
261
-
262
- // remove_const
263
-
264
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_const {typedef _Tp type;};
265
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_const<const _Tp> {typedef _Tp type;};
266
- #if _LIBCPP_STD_VER > 11
267
- template <class _Tp> using remove_const_t = typename remove_const<_Tp>::type;
268
- #endif
269
-
270
- // remove_volatile
271
-
272
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_volatile {typedef _Tp type;};
273
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_volatile<volatile _Tp> {typedef _Tp type;};
274
- #if _LIBCPP_STD_VER > 11
275
- template <class _Tp> using remove_volatile_t = typename remove_volatile<_Tp>::type;
276
- #endif
277
-
278
- // remove_cv
279
-
280
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_cv
281
- {typedef typename remove_volatile<typename remove_const<_Tp>::type>::type type;};
282
- #if _LIBCPP_STD_VER > 11
283
- template <class _Tp> using remove_cv_t = typename remove_cv<_Tp>::type;
284
- #endif
285
-
286
- // is_void
287
-
288
- template <class _Tp> struct __is_void : public false_type {};
289
- template <> struct __is_void<void> : public true_type {};
290
-
291
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_void
292
- : public __is_void<typename remove_cv<_Tp>::type> {};
293
-
294
- // __is_nullptr_t
295
-
296
- template <class _Tp> struct ____is_nullptr_t : public false_type {};
297
- template <> struct ____is_nullptr_t<nullptr_t> : public true_type {};
298
-
299
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY __is_nullptr_t
300
- : public ____is_nullptr_t<typename remove_cv<_Tp>::type> {};
301
-
302
- #if _LIBCPP_STD_VER > 11
303
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_null_pointer
304
- : public ____is_nullptr_t<typename remove_cv<_Tp>::type> {};
305
- #endif
306
-
307
- // is_integral
308
-
309
- template <class _Tp> struct __is_integral : public false_type {};
310
- template <> struct __is_integral<bool> : public true_type {};
311
- template <> struct __is_integral<char> : public true_type {};
312
- template <> struct __is_integral<signed char> : public true_type {};
313
- template <> struct __is_integral<unsigned char> : public true_type {};
314
- template <> struct __is_integral<wchar_t> : public true_type {};
315
- #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
316
- template <> struct __is_integral<char16_t> : public true_type {};
317
- template <> struct __is_integral<char32_t> : public true_type {};
318
- #endif // _LIBCPP_HAS_NO_UNICODE_CHARS
319
- template <> struct __is_integral<short> : public true_type {};
320
- template <> struct __is_integral<unsigned short> : public true_type {};
321
- template <> struct __is_integral<int> : public true_type {};
322
- template <> struct __is_integral<unsigned int> : public true_type {};
323
- template <> struct __is_integral<long> : public true_type {};
324
- template <> struct __is_integral<unsigned long> : public true_type {};
325
- template <> struct __is_integral<long long> : public true_type {};
326
- template <> struct __is_integral<unsigned long long> : public true_type {};
327
-
328
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_integral
329
- : public __is_integral<typename remove_cv<_Tp>::type> {};
330
-
331
- // is_floating_point
332
-
333
- template <class _Tp> struct __is_floating_point : public false_type {};
334
- template <> struct __is_floating_point<float> : public true_type {};
335
- template <> struct __is_floating_point<double> : public true_type {};
336
- template <> struct __is_floating_point<long double> : public true_type {};
337
-
338
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_floating_point
339
- : public __is_floating_point<typename remove_cv<_Tp>::type> {};
340
-
341
- // is_array
342
-
343
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_array
344
- : public false_type {};
345
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_array<_Tp[]>
346
- : public true_type {};
347
- template <class _Tp, size_t _Np> struct _LIBCPP_TYPE_VIS_ONLY is_array<_Tp[_Np]>
348
- : public true_type {};
349
-
350
- // is_pointer
351
-
352
- template <class _Tp> struct __is_pointer : public false_type {};
353
- template <class _Tp> struct __is_pointer<_Tp*> : public true_type {};
354
-
355
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_pointer
356
- : public __is_pointer<typename remove_cv<_Tp>::type> {};
357
-
358
- // is_reference
359
-
360
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_lvalue_reference : public false_type {};
361
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_lvalue_reference<_Tp&> : public true_type {};
362
-
363
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_rvalue_reference : public false_type {};
364
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
365
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_rvalue_reference<_Tp&&> : public true_type {};
366
- #endif
367
-
368
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_reference : public false_type {};
369
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_reference<_Tp&> : public true_type {};
370
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
371
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_reference<_Tp&&> : public true_type {};
372
- #endif
373
-
374
- #if defined(__clang__) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
375
- #define _LIBCPP_HAS_TYPE_TRAITS
376
- #endif
377
-
378
- // is_union
379
-
380
- #if __has_feature(is_union) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
381
-
382
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_union
383
- : public integral_constant<bool, __is_union(_Tp)> {};
384
-
385
- #else
386
-
387
- template <class _Tp> struct __libcpp_union : public false_type {};
388
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_union
389
- : public __libcpp_union<typename remove_cv<_Tp>::type> {};
390
-
391
- #endif
392
-
393
- // is_class
394
-
395
- #if __has_feature(is_class) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
396
-
397
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_class
398
- : public integral_constant<bool, __is_class(_Tp)> {};
399
-
400
- #else
401
-
402
- namespace __is_class_imp
403
- {
404
- template <class _Tp> char __test(int _Tp::*);
405
- template <class _Tp> __two __test(...);
406
- }
407
-
408
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_class
409
- : public integral_constant<bool, sizeof(__is_class_imp::__test<_Tp>(0)) == 1 && !is_union<_Tp>::value> {};
410
-
411
- #endif
412
-
413
- // is_same
414
-
415
- template <class _Tp, class _Up> struct _LIBCPP_TYPE_VIS_ONLY is_same : public false_type {};
416
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_same<_Tp, _Tp> : public true_type {};
417
-
418
- // is_function
419
-
420
- namespace __is_function_imp
421
- {
422
- template <class _Tp> char __test(_Tp*);
423
- template <class _Tp> __two __test(...);
424
- template <class _Tp> _Tp& __source();
425
- }
426
-
427
- template <class _Tp, bool = is_class<_Tp>::value ||
428
- is_union<_Tp>::value ||
429
- is_void<_Tp>::value ||
430
- is_reference<_Tp>::value ||
431
- __is_nullptr_t<_Tp>::value >
432
- struct __is_function
433
- : public integral_constant<bool, sizeof(__is_function_imp::__test<_Tp>(__is_function_imp::__source<_Tp>())) == 1>
434
- {};
435
- template <class _Tp> struct __is_function<_Tp, true> : public false_type {};
436
-
437
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_function
438
- : public __is_function<_Tp> {};
439
-
440
- // is_member_function_pointer
441
-
442
- template <class _Tp> struct __is_member_function_pointer : public false_type {};
443
- template <class _Tp, class _Up> struct __is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp> {};
444
-
445
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_member_function_pointer
446
- : public __is_member_function_pointer<typename remove_cv<_Tp>::type> {};
447
-
448
- // is_member_pointer
449
-
450
- template <class _Tp> struct __is_member_pointer : public false_type {};
451
- template <class _Tp, class _Up> struct __is_member_pointer<_Tp _Up::*> : public true_type {};
452
-
453
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_member_pointer
454
- : public __is_member_pointer<typename remove_cv<_Tp>::type> {};
455
-
456
- // is_member_object_pointer
457
-
458
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_member_object_pointer
459
- : public integral_constant<bool, is_member_pointer<_Tp>::value &&
460
- !is_member_function_pointer<_Tp>::value> {};
461
-
462
- // is_enum
463
-
464
- #if __has_feature(is_enum) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
465
-
466
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_enum
467
- : public integral_constant<bool, __is_enum(_Tp)> {};
468
-
469
- #else
470
-
471
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_enum
472
- : public integral_constant<bool, !is_void<_Tp>::value &&
473
- !is_integral<_Tp>::value &&
474
- !is_floating_point<_Tp>::value &&
475
- !is_array<_Tp>::value &&
476
- !is_pointer<_Tp>::value &&
477
- !is_reference<_Tp>::value &&
478
- !is_member_pointer<_Tp>::value &&
479
- !is_union<_Tp>::value &&
480
- !is_class<_Tp>::value &&
481
- !is_function<_Tp>::value > {};
482
-
483
- #endif
484
-
485
- // is_arithmetic
486
-
487
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_arithmetic
488
- : public integral_constant<bool, is_integral<_Tp>::value ||
489
- is_floating_point<_Tp>::value> {};
490
-
491
- // is_fundamental
492
-
493
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_fundamental
494
- : public integral_constant<bool, is_void<_Tp>::value ||
495
- __is_nullptr_t<_Tp>::value ||
496
- is_arithmetic<_Tp>::value> {};
497
-
498
- // is_scalar
499
-
500
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_scalar
501
- : public integral_constant<bool, is_arithmetic<_Tp>::value ||
502
- is_member_pointer<_Tp>::value ||
503
- is_pointer<_Tp>::value ||
504
- __is_nullptr_t<_Tp>::value ||
505
- is_enum<_Tp>::value > {};
506
-
507
- template <> struct _LIBCPP_TYPE_VIS_ONLY is_scalar<nullptr_t> : public true_type {};
508
-
509
- // is_object
510
-
511
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_object
512
- : public integral_constant<bool, is_scalar<_Tp>::value ||
513
- is_array<_Tp>::value ||
514
- is_union<_Tp>::value ||
515
- is_class<_Tp>::value > {};
516
-
517
- // is_compound
518
-
519
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_compound
520
- : public integral_constant<bool, !is_fundamental<_Tp>::value> {};
521
-
522
- // add_const
523
-
524
- template <class _Tp, bool = is_reference<_Tp>::value ||
525
- is_function<_Tp>::value ||
526
- is_const<_Tp>::value >
527
- struct __add_const {typedef _Tp type;};
528
-
529
- template <class _Tp>
530
- struct __add_const<_Tp, false> {typedef const _Tp type;};
531
-
532
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY add_const
533
- {typedef typename __add_const<_Tp>::type type;};
534
-
535
- #if _LIBCPP_STD_VER > 11
536
- template <class _Tp> using add_const_t = typename add_const<_Tp>::type;
537
- #endif
538
-
539
- // add_volatile
540
-
541
- template <class _Tp, bool = is_reference<_Tp>::value ||
542
- is_function<_Tp>::value ||
543
- is_volatile<_Tp>::value >
544
- struct __add_volatile {typedef _Tp type;};
545
-
546
- template <class _Tp>
547
- struct __add_volatile<_Tp, false> {typedef volatile _Tp type;};
548
-
549
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY add_volatile
550
- {typedef typename __add_volatile<_Tp>::type type;};
551
-
552
- #if _LIBCPP_STD_VER > 11
553
- template <class _Tp> using add_volatile_t = typename add_volatile<_Tp>::type;
554
- #endif
555
-
556
- // add_cv
557
-
558
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY add_cv
559
- {typedef typename add_const<typename add_volatile<_Tp>::type>::type type;};
560
-
561
- #if _LIBCPP_STD_VER > 11
562
- template <class _Tp> using add_cv_t = typename add_cv<_Tp>::type;
563
- #endif
564
-
565
- // remove_reference
566
-
567
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_reference {typedef _Tp type;};
568
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_reference<_Tp&> {typedef _Tp type;};
569
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
570
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_reference<_Tp&&> {typedef _Tp type;};
571
- #endif
572
-
573
- #if _LIBCPP_STD_VER > 11
574
- template <class _Tp> using remove_reference_t = typename remove_reference<_Tp>::type;
575
- #endif
576
-
577
- // add_lvalue_reference
578
-
579
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY add_lvalue_reference {typedef _Tp& type;};
580
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY add_lvalue_reference<_Tp&> {typedef _Tp& type;}; // for older compiler
581
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_lvalue_reference<void> {typedef void type;};
582
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_lvalue_reference<const void> {typedef const void type;};
583
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_lvalue_reference<volatile void> {typedef volatile void type;};
584
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_lvalue_reference<const volatile void> {typedef const volatile void type;};
585
-
586
- #if _LIBCPP_STD_VER > 11
587
- template <class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type;
588
- #endif
589
-
590
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
591
-
592
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY add_rvalue_reference {typedef _Tp&& type;};
593
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_rvalue_reference<void> {typedef void type;};
594
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_rvalue_reference<const void> {typedef const void type;};
595
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_rvalue_reference<volatile void> {typedef volatile void type;};
596
- template <> struct _LIBCPP_TYPE_VIS_ONLY add_rvalue_reference<const volatile void> {typedef const volatile void type;};
597
-
598
- #if _LIBCPP_STD_VER > 11
599
- template <class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type;
600
- #endif
601
-
602
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
603
-
604
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
605
-
606
- template <class _Tp>
607
- typename add_rvalue_reference<_Tp>::type
608
- declval() _NOEXCEPT;
609
-
610
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
611
-
612
- template <class _Tp>
613
- typename add_lvalue_reference<_Tp>::type
614
- declval();
615
-
616
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
617
-
618
- struct __any
619
- {
620
- __any(...);
621
- };
622
-
623
- // remove_pointer
624
-
625
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_pointer {typedef _Tp type;};
626
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_pointer<_Tp*> {typedef _Tp type;};
627
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_pointer<_Tp* const> {typedef _Tp type;};
628
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_pointer<_Tp* volatile> {typedef _Tp type;};
629
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_pointer<_Tp* const volatile> {typedef _Tp type;};
630
-
631
- #if _LIBCPP_STD_VER > 11
632
- template <class _Tp> using remove_pointer_t = typename remove_pointer<_Tp>::type;
633
- #endif
634
-
635
- // add_pointer
636
-
637
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY add_pointer
638
- {typedef typename remove_reference<_Tp>::type* type;};
639
-
640
- #if _LIBCPP_STD_VER > 11
641
- template <class _Tp> using add_pointer_t = typename add_pointer<_Tp>::type;
642
- #endif
643
-
644
- // is_signed
645
-
646
- template <class _Tp, bool = is_integral<_Tp>::value>
647
- struct ___is_signed : public integral_constant<bool, _Tp(-1) < _Tp(0)> {};
648
-
649
- template <class _Tp>
650
- struct ___is_signed<_Tp, false> : public true_type {}; // floating point
651
-
652
- template <class _Tp, bool = is_arithmetic<_Tp>::value>
653
- struct __is_signed : public ___is_signed<_Tp> {};
654
-
655
- template <class _Tp> struct __is_signed<_Tp, false> : public false_type {};
656
-
657
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_signed : public __is_signed<_Tp> {};
658
-
659
- // is_unsigned
660
-
661
- template <class _Tp, bool = is_integral<_Tp>::value>
662
- struct ___is_unsigned : public integral_constant<bool, _Tp(0) < _Tp(-1)> {};
663
-
664
- template <class _Tp>
665
- struct ___is_unsigned<_Tp, false> : public false_type {}; // floating point
666
-
667
- template <class _Tp, bool = is_arithmetic<_Tp>::value>
668
- struct __is_unsigned : public ___is_unsigned<_Tp> {};
669
-
670
- template <class _Tp> struct __is_unsigned<_Tp, false> : public false_type {};
671
-
672
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_unsigned : public __is_unsigned<_Tp> {};
673
-
674
- // rank
675
-
676
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY rank
677
- : public integral_constant<size_t, 0> {};
678
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY rank<_Tp[]>
679
- : public integral_constant<size_t, rank<_Tp>::value + 1> {};
680
- template <class _Tp, size_t _Np> struct _LIBCPP_TYPE_VIS_ONLY rank<_Tp[_Np]>
681
- : public integral_constant<size_t, rank<_Tp>::value + 1> {};
682
-
683
- // extent
684
-
685
- template <class _Tp, unsigned _Ip = 0> struct _LIBCPP_TYPE_VIS_ONLY extent
686
- : public integral_constant<size_t, 0> {};
687
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY extent<_Tp[], 0>
688
- : public integral_constant<size_t, 0> {};
689
- template <class _Tp, unsigned _Ip> struct _LIBCPP_TYPE_VIS_ONLY extent<_Tp[], _Ip>
690
- : public integral_constant<size_t, extent<_Tp, _Ip-1>::value> {};
691
- template <class _Tp, size_t _Np> struct _LIBCPP_TYPE_VIS_ONLY extent<_Tp[_Np], 0>
692
- : public integral_constant<size_t, _Np> {};
693
- template <class _Tp, size_t _Np, unsigned _Ip> struct _LIBCPP_TYPE_VIS_ONLY extent<_Tp[_Np], _Ip>
694
- : public integral_constant<size_t, extent<_Tp, _Ip-1>::value> {};
695
-
696
- // remove_extent
697
-
698
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_extent
699
- {typedef _Tp type;};
700
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_extent<_Tp[]>
701
- {typedef _Tp type;};
702
- template <class _Tp, size_t _Np> struct _LIBCPP_TYPE_VIS_ONLY remove_extent<_Tp[_Np]>
703
- {typedef _Tp type;};
704
-
705
- #if _LIBCPP_STD_VER > 11
706
- template <class _Tp> using remove_extent_t = typename remove_extent<_Tp>::type;
707
- #endif
708
-
709
- // remove_all_extents
710
-
711
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_all_extents
712
- {typedef _Tp type;};
713
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY remove_all_extents<_Tp[]>
714
- {typedef typename remove_all_extents<_Tp>::type type;};
715
- template <class _Tp, size_t _Np> struct _LIBCPP_TYPE_VIS_ONLY remove_all_extents<_Tp[_Np]>
716
- {typedef typename remove_all_extents<_Tp>::type type;};
717
-
718
- #if _LIBCPP_STD_VER > 11
719
- template <class _Tp> using remove_all_extents_t = typename remove_all_extents<_Tp>::type;
720
- #endif
721
-
722
- // decay
723
-
724
- template <class _Tp>
725
- struct _LIBCPP_TYPE_VIS_ONLY decay
726
- {
727
- private:
728
- typedef typename remove_reference<_Tp>::type _Up;
729
- public:
730
- typedef typename conditional
731
- <
732
- is_array<_Up>::value,
733
- typename remove_extent<_Up>::type*,
734
- typename conditional
735
- <
736
- is_function<_Up>::value,
737
- typename add_pointer<_Up>::type,
738
- typename remove_cv<_Up>::type
739
- >::type
740
- >::type type;
741
- };
742
-
743
- #if _LIBCPP_STD_VER > 11
744
- template <class _Tp> using decay_t = typename decay<_Tp>::type;
745
- #endif
746
-
747
- // is_abstract
748
-
749
- namespace __is_abstract_imp
750
- {
751
- template <class _Tp> char __test(_Tp (*)[1]);
752
- template <class _Tp> __two __test(...);
753
- }
754
-
755
- template <class _Tp, bool = is_class<_Tp>::value>
756
- struct __libcpp_abstract : public integral_constant<bool, sizeof(__is_abstract_imp::__test<_Tp>(0)) != 1> {};
757
-
758
- template <class _Tp> struct __libcpp_abstract<_Tp, false> : public false_type {};
759
-
760
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_abstract : public __libcpp_abstract<_Tp> {};
761
-
762
- // is_base_of
763
-
764
- #ifdef _LIBCPP_HAS_IS_BASE_OF
765
-
766
- template <class _Bp, class _Dp>
767
- struct _LIBCPP_TYPE_VIS_ONLY is_base_of
768
- : public integral_constant<bool, __is_base_of(_Bp, _Dp)> {};
769
-
770
- #else // __has_feature(is_base_of)
771
-
772
- namespace __is_base_of_imp
773
- {
774
- template <class _Tp>
775
- struct _Dst
776
- {
777
- _Dst(const volatile _Tp &);
778
- };
779
- template <class _Tp>
780
- struct _Src
781
- {
782
- operator const volatile _Tp &();
783
- template <class _Up> operator const _Dst<_Up> &();
784
- };
785
- template <size_t> struct __one { typedef char type; };
786
- template <class _Bp, class _Dp> typename __one<sizeof(_Dst<_Bp>(declval<_Src<_Dp> >()))>::type __test(int);
787
- template <class _Bp, class _Dp> __two __test(...);
788
- }
789
-
790
- template <class _Bp, class _Dp>
791
- struct _LIBCPP_TYPE_VIS_ONLY is_base_of
792
- : public integral_constant<bool, is_class<_Bp>::value &&
793
- sizeof(__is_base_of_imp::__test<_Bp, _Dp>(0)) == 2> {};
794
-
795
- #endif // __has_feature(is_base_of)
796
-
797
- // is_convertible
798
-
799
- #if __has_feature(is_convertible_to)
800
-
801
- template <class _T1, class _T2> struct _LIBCPP_TYPE_VIS_ONLY is_convertible
802
- : public integral_constant<bool, __is_convertible_to(_T1, _T2) &&
803
- !is_abstract<_T2>::value> {};
804
-
805
- #else // __has_feature(is_convertible_to)
806
-
807
- namespace __is_convertible_imp
808
- {
809
- template <class _Tp> char __test(_Tp);
810
- template <class _Tp> __two __test(...);
811
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
812
- template <class _Tp> _Tp&& __source();
813
- #else
814
- template <class _Tp> typename remove_reference<_Tp>::type& __source();
815
- #endif
816
-
817
- template <class _Tp, bool _IsArray = is_array<_Tp>::value,
818
- bool _IsFunction = is_function<_Tp>::value,
819
- bool _IsVoid = is_void<_Tp>::value>
820
- struct __is_array_function_or_void {enum {value = 0};};
821
- template <class _Tp> struct __is_array_function_or_void<_Tp, true, false, false> {enum {value = 1};};
822
- template <class _Tp> struct __is_array_function_or_void<_Tp, false, true, false> {enum {value = 2};};
823
- template <class _Tp> struct __is_array_function_or_void<_Tp, false, false, true> {enum {value = 3};};
824
- }
825
-
826
- template <class _Tp,
827
- unsigned = __is_convertible_imp::__is_array_function_or_void<typename remove_reference<_Tp>::type>::value>
828
- struct __is_convertible_check
829
- {
830
- static const size_t __v = 0;
831
- };
832
-
833
- template <class _Tp>
834
- struct __is_convertible_check<_Tp, 0>
835
- {
836
- static const size_t __v = sizeof(_Tp);
837
- };
838
-
839
- template <class _T1, class _T2,
840
- unsigned _T1_is_array_function_or_void = __is_convertible_imp::__is_array_function_or_void<_T1>::value,
841
- unsigned _T2_is_array_function_or_void = __is_convertible_imp::__is_array_function_or_void<_T2>::value>
842
- struct __is_convertible
843
- : public integral_constant<bool,
844
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
845
- sizeof(__is_convertible_imp::__test<_T2>(__is_convertible_imp::__source<_T1>())) == 1
846
- #else
847
- sizeof(__is_convertible_imp::__test<_T2>(__is_convertible_imp::__source<_T1>())) == 1
848
- && !(!is_function<_T1>::value && !is_reference<_T1>::value && is_reference<_T2>::value
849
- && (!is_const<typename remove_reference<_T2>::type>::value
850
- || is_volatile<typename remove_reference<_T2>::type>::value)
851
- && (is_same<typename remove_cv<_T1>::type,
852
- typename remove_cv<typename remove_reference<_T2>::type>::type>::value
853
- || is_base_of<typename remove_reference<_T2>::type, _T1>::value))
854
- #endif
855
- >
856
- {};
857
-
858
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 0> : false_type {};
859
-
860
- template <class _T1> struct __is_convertible<_T1, const _T1&, 1, 0> : true_type {};
861
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
862
- template <class _T1> struct __is_convertible<_T1, _T1&&, 1, 0> : true_type {};
863
- template <class _T1> struct __is_convertible<_T1, const _T1&&, 1, 0> : true_type {};
864
- template <class _T1> struct __is_convertible<_T1, volatile _T1&&, 1, 0> : true_type {};
865
- template <class _T1> struct __is_convertible<_T1, const volatile _T1&&, 1, 0> : true_type {};
866
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
867
-
868
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2*, 1, 0>
869
- : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*>::value> {};
870
-
871
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2* const, 1, 0>
872
- : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*const>::value> {};
873
-
874
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2* volatile, 1, 0>
875
- : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*volatile>::value> {};
876
-
877
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2* const volatile, 1, 0>
878
- : public integral_constant<bool, __is_convertible<typename remove_all_extents<_T1>::type*, _T2*const volatile>::value> {};
879
-
880
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 0> : public false_type {};
881
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
882
- template <class _T1> struct __is_convertible<_T1, _T1&&, 2, 0> : public true_type {};
883
- #endif
884
- template <class _T1> struct __is_convertible<_T1, _T1&, 2, 0> : public true_type {};
885
- template <class _T1> struct __is_convertible<_T1, _T1*, 2, 0> : public true_type {};
886
- template <class _T1> struct __is_convertible<_T1, _T1*const, 2, 0> : public true_type {};
887
- template <class _T1> struct __is_convertible<_T1, _T1*volatile, 2, 0> : public true_type {};
888
- template <class _T1> struct __is_convertible<_T1, _T1*const volatile, 2, 0> : public true_type {};
889
-
890
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 0> : public false_type {};
891
-
892
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 1> : public false_type {};
893
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 1> : public false_type {};
894
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 1> : public false_type {};
895
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 1> : public false_type {};
896
-
897
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 2> : public false_type {};
898
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 2> : public false_type {};
899
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 2> : public false_type {};
900
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 2> : public false_type {};
901
-
902
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 3> : public false_type {};
903
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 3> : public false_type {};
904
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 3> : public false_type {};
905
- template <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 3> : public true_type {};
906
-
907
- template <class _T1, class _T2> struct _LIBCPP_TYPE_VIS_ONLY is_convertible
908
- : public __is_convertible<_T1, _T2>
909
- {
910
- static const size_t __complete_check1 = __is_convertible_check<_T1>::__v;
911
- static const size_t __complete_check2 = __is_convertible_check<_T2>::__v;
912
- };
913
-
914
- #endif // __has_feature(is_convertible_to)
915
-
916
- // is_empty
917
-
918
- #if __has_feature(is_empty)
919
-
920
- template <class _Tp>
921
- struct _LIBCPP_TYPE_VIS_ONLY is_empty
922
- : public integral_constant<bool, __is_empty(_Tp)> {};
923
-
924
- #else // __has_feature(is_empty)
925
-
926
- template <class _Tp>
927
- struct __is_empty1
928
- : public _Tp
929
- {
930
- double __lx;
931
- };
932
-
933
- struct __is_empty2
934
- {
935
- double __lx;
936
- };
937
-
938
- template <class _Tp, bool = is_class<_Tp>::value>
939
- struct __libcpp_empty : public integral_constant<bool, sizeof(__is_empty1<_Tp>) == sizeof(__is_empty2)> {};
940
-
941
- template <class _Tp> struct __libcpp_empty<_Tp, false> : public false_type {};
942
-
943
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_empty : public __libcpp_empty<_Tp> {};
944
-
945
- #endif // __has_feature(is_empty)
946
-
947
- // is_polymorphic
948
-
949
- #if __has_feature(is_polymorphic)
950
-
951
- template <class _Tp>
952
- struct _LIBCPP_TYPE_VIS_ONLY is_polymorphic
953
- : public integral_constant<bool, __is_polymorphic(_Tp)> {};
954
-
955
- #else
956
-
957
- template<typename _Tp> char &__is_polymorphic_impl(
958
- typename enable_if<sizeof((_Tp*)dynamic_cast<const volatile void*>(declval<_Tp*>())) != 0,
959
- int>::type);
960
- template<typename _Tp> __two &__is_polymorphic_impl(...);
961
-
962
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_polymorphic
963
- : public integral_constant<bool, sizeof(__is_polymorphic_impl<_Tp>(0)) == 1> {};
964
-
965
- #endif // __has_feature(is_polymorphic)
966
-
967
- // has_virtual_destructor
968
-
969
- #if __has_feature(has_virtual_destructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
970
-
971
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY has_virtual_destructor
972
- : public integral_constant<bool, __has_virtual_destructor(_Tp)> {};
973
-
974
- #else // _LIBCPP_HAS_TYPE_TRAITS
975
-
976
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY has_virtual_destructor
977
- : public false_type {};
978
-
979
- #endif // _LIBCPP_HAS_TYPE_TRAITS
980
-
981
- // alignment_of
982
-
983
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY alignment_of
984
- : public integral_constant<size_t, __alignof__(_Tp)> {};
985
-
986
- // aligned_storage
987
-
988
- template <class _Hp, class _Tp>
989
- struct __type_list
990
- {
991
- typedef _Hp _Head;
992
- typedef _Tp _Tail;
993
- };
994
-
995
- struct __nat
996
- {
997
- #ifndef _LIBCPP_HAS_NO_DELETED_FUNCTIONS
998
- __nat() = delete;
999
- __nat(const __nat&) = delete;
1000
- __nat& operator=(const __nat&) = delete;
1001
- ~__nat() = delete;
1002
- #endif
1003
- };
1004
-
1005
- template <class _Tp>
1006
- struct __align_type
1007
- {
1008
- static const size_t value = alignment_of<_Tp>::value;
1009
- typedef _Tp type;
1010
- };
1011
-
1012
- struct __struct_double {long double __lx;};
1013
- struct __struct_double4 {double __lx[4];};
1014
-
1015
- typedef
1016
- __type_list<__align_type<unsigned char>,
1017
- __type_list<__align_type<unsigned short>,
1018
- __type_list<__align_type<unsigned int>,
1019
- __type_list<__align_type<unsigned long>,
1020
- __type_list<__align_type<unsigned long long>,
1021
- __type_list<__align_type<double>,
1022
- __type_list<__align_type<long double>,
1023
- __type_list<__align_type<__struct_double>,
1024
- __type_list<__align_type<__struct_double4>,
1025
- __type_list<__align_type<int*>,
1026
- __nat
1027
- > > > > > > > > > > __all_types;
1028
-
1029
- template <class _TL, size_t _Align> struct __find_pod;
1030
-
1031
- template <class _Hp, size_t _Align>
1032
- struct __find_pod<__type_list<_Hp, __nat>, _Align>
1033
- {
1034
- typedef typename conditional<
1035
- _Align == _Hp::value,
1036
- typename _Hp::type,
1037
- void
1038
- >::type type;
1039
- };
1040
-
1041
- template <class _Hp, class _Tp, size_t _Align>
1042
- struct __find_pod<__type_list<_Hp, _Tp>, _Align>
1043
- {
1044
- typedef typename conditional<
1045
- _Align == _Hp::value,
1046
- typename _Hp::type,
1047
- typename __find_pod<_Tp, _Align>::type
1048
- >::type type;
1049
- };
1050
-
1051
- template <class _TL, size_t _Len> struct __find_max_align;
1052
-
1053
- template <class _Hp, size_t _Len>
1054
- struct __find_max_align<__type_list<_Hp, __nat>, _Len> : public integral_constant<size_t, _Hp::value> {};
1055
-
1056
- template <size_t _Len, size_t _A1, size_t _A2>
1057
- struct __select_align
1058
- {
1059
- private:
1060
- static const size_t __min = _A2 < _A1 ? _A2 : _A1;
1061
- static const size_t __max = _A1 < _A2 ? _A2 : _A1;
1062
- public:
1063
- static const size_t value = _Len < __max ? __min : __max;
1064
- };
1065
-
1066
- template <class _Hp, class _Tp, size_t _Len>
1067
- struct __find_max_align<__type_list<_Hp, _Tp>, _Len>
1068
- : public integral_constant<size_t, __select_align<_Len, _Hp::value, __find_max_align<_Tp, _Len>::value>::value> {};
1069
-
1070
- template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value>
1071
- struct _LIBCPP_TYPE_VIS_ONLY aligned_storage
1072
- {
1073
- typedef typename __find_pod<__all_types, _Align>::type _Aligner;
1074
- static_assert(!is_void<_Aligner>::value, "");
1075
- union type
1076
- {
1077
- _Aligner __align;
1078
- unsigned char __data[_Len];
1079
- };
1080
- };
1081
-
1082
- #if _LIBCPP_STD_VER > 11
1083
- template <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value>
1084
- using aligned_storage_t = typename aligned_storage<_Len, _Align>::type;
1085
- #endif
1086
-
1087
- #define _CREATE_ALIGNED_STORAGE_SPECIALIZATION(n) \
1088
- template <size_t _Len>\
1089
- struct _LIBCPP_TYPE_VIS_ONLY aligned_storage<_Len, n>\
1090
- {\
1091
- struct _ALIGNAS(n) type\
1092
- {\
1093
- unsigned char __lx[_Len];\
1094
- };\
1095
- }
1096
-
1097
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x1);
1098
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x2);
1099
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x4);
1100
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x8);
1101
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x10);
1102
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x20);
1103
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x40);
1104
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x80);
1105
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x100);
1106
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x200);
1107
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x400);
1108
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x800);
1109
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x1000);
1110
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x2000);
1111
- // MSDN says that MSVC does not support alignment beyond 8192 (=0x2000)
1112
- #if !defined(_LIBCPP_MSVC)
1113
- _CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x4000);
1114
- #endif // !_LIBCPP_MSVC
1115
-
1116
- #undef _CREATE_ALIGNED_STORAGE_SPECIALIZATION
1117
-
1118
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1119
-
1120
- // aligned_union
1121
-
1122
- template <size_t _I0, size_t ..._In>
1123
- struct __static_max;
1124
-
1125
- template <size_t _I0>
1126
- struct __static_max<_I0>
1127
- {
1128
- static const size_t value = _I0;
1129
- };
1130
-
1131
- template <size_t _I0, size_t _I1, size_t ..._In>
1132
- struct __static_max<_I0, _I1, _In...>
1133
- {
1134
- static const size_t value = _I0 >= _I1 ? __static_max<_I0, _In...>::value :
1135
- __static_max<_I1, _In...>::value;
1136
- };
1137
-
1138
- template <size_t _Len, class _Type0, class ..._Types>
1139
- struct aligned_union
1140
- {
1141
- static const size_t alignment_value = __static_max<__alignof__(_Type0),
1142
- __alignof__(_Types)...>::value;
1143
- static const size_t __len = __static_max<_Len, sizeof(_Type0),
1144
- sizeof(_Types)...>::value;
1145
- typedef typename aligned_storage<__len, alignment_value>::type type;
1146
- };
1147
-
1148
- #if _LIBCPP_STD_VER > 11
1149
- template <size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union<_Len, _Types...>::type;
1150
- #endif
1151
-
1152
- #endif // _LIBCPP_HAS_NO_VARIADICS
1153
-
1154
- // __promote
1155
-
1156
- template <class _A1, class _A2 = void, class _A3 = void,
1157
- bool = (is_arithmetic<_A1>::value || is_void<_A1>::value) &&
1158
- (is_arithmetic<_A2>::value || is_void<_A2>::value) &&
1159
- (is_arithmetic<_A3>::value || is_void<_A3>::value)>
1160
- class __promote {};
1161
-
1162
- template <class _A1, class _A2, class _A3>
1163
- class __promote<_A1, _A2, _A3, true>
1164
- {
1165
- private:
1166
- typedef typename __promote<_A1>::type __type1;
1167
- typedef typename __promote<_A2>::type __type2;
1168
- typedef typename __promote<_A3>::type __type3;
1169
- public:
1170
- typedef decltype(__type1() + __type2() + __type3()) type;
1171
- };
1172
-
1173
- template <class _A1, class _A2>
1174
- class __promote<_A1, _A2, void, true>
1175
- {
1176
- private:
1177
- typedef typename __promote<_A1>::type __type1;
1178
- typedef typename __promote<_A2>::type __type2;
1179
- public:
1180
- typedef decltype(__type1() + __type2()) type;
1181
- };
1182
-
1183
- template <class _A1>
1184
- class __promote<_A1, void, void, true>
1185
- {
1186
- public:
1187
- typedef typename conditional<is_arithmetic<_A1>::value,
1188
- typename conditional<is_integral<_A1>::value, double, _A1>::type,
1189
- void
1190
- >::type type;
1191
- };
1192
-
1193
- #ifdef _LIBCPP_STORE_AS_OPTIMIZATION
1194
-
1195
- // __transform
1196
-
1197
- template <class _Tp, size_t = sizeof(_Tp), bool = is_scalar<_Tp>::value> struct __transform {typedef _Tp type;};
1198
- template <class _Tp> struct __transform<_Tp, 1, true> {typedef unsigned char type;};
1199
- template <class _Tp> struct __transform<_Tp, 2, true> {typedef unsigned short type;};
1200
- template <class _Tp> struct __transform<_Tp, 4, true> {typedef unsigned int type;};
1201
- template <class _Tp> struct __transform<_Tp, 8, true> {typedef unsigned long long type;};
1202
-
1203
- #endif // _LIBCPP_STORE_AS_OPTIMIZATION
1204
-
1205
- // make_signed / make_unsigned
1206
-
1207
- typedef
1208
- __type_list<signed char,
1209
- __type_list<signed short,
1210
- __type_list<signed int,
1211
- __type_list<signed long,
1212
- __type_list<signed long long,
1213
- __nat
1214
- > > > > > __signed_types;
1215
-
1216
- typedef
1217
- __type_list<unsigned char,
1218
- __type_list<unsigned short,
1219
- __type_list<unsigned int,
1220
- __type_list<unsigned long,
1221
- __type_list<unsigned long long,
1222
- __nat
1223
- > > > > > __unsigned_types;
1224
-
1225
- template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first;
1226
-
1227
- template <class _Hp, class _Tp, size_t _Size>
1228
- struct __find_first<__type_list<_Hp, _Tp>, _Size, true>
1229
- {
1230
- typedef _Hp type;
1231
- };
1232
-
1233
- template <class _Hp, class _Tp, size_t _Size>
1234
- struct __find_first<__type_list<_Hp, _Tp>, _Size, false>
1235
- {
1236
- typedef typename __find_first<_Tp, _Size>::type type;
1237
- };
1238
-
1239
- template <class _Tp, class _Up, bool = is_const<typename remove_reference<_Tp>::type>::value,
1240
- bool = is_volatile<typename remove_reference<_Tp>::type>::value>
1241
- struct __apply_cv
1242
- {
1243
- typedef _Up type;
1244
- };
1245
-
1246
- template <class _Tp, class _Up>
1247
- struct __apply_cv<_Tp, _Up, true, false>
1248
- {
1249
- typedef const _Up type;
1250
- };
1251
-
1252
- template <class _Tp, class _Up>
1253
- struct __apply_cv<_Tp, _Up, false, true>
1254
- {
1255
- typedef volatile _Up type;
1256
- };
1257
-
1258
- template <class _Tp, class _Up>
1259
- struct __apply_cv<_Tp, _Up, true, true>
1260
- {
1261
- typedef const volatile _Up type;
1262
- };
1263
-
1264
- template <class _Tp, class _Up>
1265
- struct __apply_cv<_Tp&, _Up, false, false>
1266
- {
1267
- typedef _Up& type;
1268
- };
1269
-
1270
- template <class _Tp, class _Up>
1271
- struct __apply_cv<_Tp&, _Up, true, false>
1272
- {
1273
- typedef const _Up& type;
1274
- };
1275
-
1276
- template <class _Tp, class _Up>
1277
- struct __apply_cv<_Tp&, _Up, false, true>
1278
- {
1279
- typedef volatile _Up& type;
1280
- };
1281
-
1282
- template <class _Tp, class _Up>
1283
- struct __apply_cv<_Tp&, _Up, true, true>
1284
- {
1285
- typedef const volatile _Up& type;
1286
- };
1287
-
1288
- template <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value>
1289
- struct __make_signed {};
1290
-
1291
- template <class _Tp>
1292
- struct __make_signed<_Tp, true>
1293
- {
1294
- typedef typename __find_first<__signed_types, sizeof(_Tp)>::type type;
1295
- };
1296
-
1297
- template <> struct __make_signed<bool, true> {};
1298
- template <> struct __make_signed< signed short, true> {typedef short type;};
1299
- template <> struct __make_signed<unsigned short, true> {typedef short type;};
1300
- template <> struct __make_signed< signed int, true> {typedef int type;};
1301
- template <> struct __make_signed<unsigned int, true> {typedef int type;};
1302
- template <> struct __make_signed< signed long, true> {typedef long type;};
1303
- template <> struct __make_signed<unsigned long, true> {typedef long type;};
1304
- template <> struct __make_signed< signed long long, true> {typedef long long type;};
1305
- template <> struct __make_signed<unsigned long long, true> {typedef long long type;};
1306
-
1307
- template <class _Tp>
1308
- struct _LIBCPP_TYPE_VIS_ONLY make_signed
1309
- {
1310
- typedef typename __apply_cv<_Tp, typename __make_signed<typename remove_cv<_Tp>::type>::type>::type type;
1311
- };
1312
-
1313
- #if _LIBCPP_STD_VER > 11
1314
- template <class _Tp> using make_signed_t = typename make_signed<_Tp>::type;
1315
- #endif
1316
-
1317
- template <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value>
1318
- struct __make_unsigned {};
1319
-
1320
- template <class _Tp>
1321
- struct __make_unsigned<_Tp, true>
1322
- {
1323
- typedef typename __find_first<__unsigned_types, sizeof(_Tp)>::type type;
1324
- };
1325
-
1326
- template <> struct __make_unsigned<bool, true> {};
1327
- template <> struct __make_unsigned< signed short, true> {typedef unsigned short type;};
1328
- template <> struct __make_unsigned<unsigned short, true> {typedef unsigned short type;};
1329
- template <> struct __make_unsigned< signed int, true> {typedef unsigned int type;};
1330
- template <> struct __make_unsigned<unsigned int, true> {typedef unsigned int type;};
1331
- template <> struct __make_unsigned< signed long, true> {typedef unsigned long type;};
1332
- template <> struct __make_unsigned<unsigned long, true> {typedef unsigned long type;};
1333
- template <> struct __make_unsigned< signed long long, true> {typedef unsigned long long type;};
1334
- template <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;};
1335
-
1336
- template <class _Tp>
1337
- struct _LIBCPP_TYPE_VIS_ONLY make_unsigned
1338
- {
1339
- typedef typename __apply_cv<_Tp, typename __make_unsigned<typename remove_cv<_Tp>::type>::type>::type type;
1340
- };
1341
-
1342
- #if _LIBCPP_STD_VER > 11
1343
- template <class _Tp> using make_unsigned_t = typename make_unsigned<_Tp>::type;
1344
- #endif
1345
-
1346
- #ifdef _LIBCPP_HAS_NO_VARIADICS
1347
-
1348
- template <class _Tp, class _Up = void, class V = void>
1349
- struct _LIBCPP_TYPE_VIS_ONLY common_type
1350
- {
1351
- public:
1352
- typedef typename common_type<typename common_type<_Tp, _Up>::type, V>::type type;
1353
- };
1354
-
1355
- template <class _Tp>
1356
- struct _LIBCPP_TYPE_VIS_ONLY common_type<_Tp, void, void>
1357
- {
1358
- public:
1359
- typedef _Tp type;
1360
- };
1361
-
1362
- template <class _Tp, class _Up>
1363
- struct _LIBCPP_TYPE_VIS_ONLY common_type<_Tp, _Up, void>
1364
- {
1365
- private:
1366
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1367
- static _Tp&& __t();
1368
- static _Up&& __u();
1369
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1370
- static _Tp __t();
1371
- static _Up __u();
1372
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1373
- public:
1374
- typedef typename remove_reference<decltype(true ? __t() : __u())>::type type;
1375
- };
1376
-
1377
- #else // _LIBCPP_HAS_NO_VARIADICS
1378
-
1379
- template <class ..._Tp> struct common_type;
1380
-
1381
- template <class _Tp>
1382
- struct _LIBCPP_TYPE_VIS_ONLY common_type<_Tp>
1383
- {
1384
- typedef typename decay<_Tp>::type type;
1385
- };
1386
-
1387
- template <class _Tp, class _Up>
1388
- struct _LIBCPP_TYPE_VIS_ONLY common_type<_Tp, _Up>
1389
- {
1390
- private:
1391
- static _Tp&& __t();
1392
- static _Up&& __u();
1393
- static bool __f();
1394
- public:
1395
- typedef typename decay<decltype(__f() ? __t() : __u())>::type type;
1396
- };
1397
-
1398
- template <class _Tp, class _Up, class ..._Vp>
1399
- struct _LIBCPP_TYPE_VIS_ONLY common_type<_Tp, _Up, _Vp...>
1400
- {
1401
- typedef typename common_type<typename common_type<_Tp, _Up>::type, _Vp...>::type type;
1402
- };
1403
-
1404
- #if _LIBCPP_STD_VER > 11
1405
- template <class ..._Tp> using common_type_t = typename common_type<_Tp...>::type;
1406
- #endif
1407
-
1408
- #endif // _LIBCPP_HAS_NO_VARIADICS
1409
-
1410
- // is_assignable
1411
-
1412
- template<typename, typename T> struct __select_2nd { typedef T type; };
1413
-
1414
- template <class _Tp, class _Arg>
1415
- typename __select_2nd<decltype((_VSTD::declval<_Tp>() = _VSTD::declval<_Arg>())), true_type>::type
1416
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1417
- __is_assignable_test(_Tp&&, _Arg&&);
1418
- #else
1419
- __is_assignable_test(_Tp, _Arg&);
1420
- #endif
1421
-
1422
- template <class _Arg>
1423
- false_type
1424
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1425
- __is_assignable_test(__any, _Arg&&);
1426
- #else
1427
- __is_assignable_test(__any, _Arg&);
1428
- #endif
1429
-
1430
- template <class _Tp, class _Arg, bool = is_void<_Tp>::value || is_void<_Arg>::value>
1431
- struct __is_assignable_imp
1432
- : public common_type
1433
- <
1434
- decltype(__is_assignable_test(declval<_Tp>(), declval<_Arg>()))
1435
- >::type {};
1436
-
1437
- template <class _Tp, class _Arg>
1438
- struct __is_assignable_imp<_Tp, _Arg, true>
1439
- : public false_type
1440
- {
1441
- };
1442
-
1443
- template <class _Tp, class _Arg>
1444
- struct is_assignable
1445
- : public __is_assignable_imp<_Tp, _Arg> {};
1446
-
1447
- // is_copy_assignable
1448
-
1449
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_copy_assignable
1450
- : public is_assignable<typename add_lvalue_reference<_Tp>::type,
1451
- const typename add_lvalue_reference<_Tp>::type> {};
1452
-
1453
- // is_move_assignable
1454
-
1455
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_move_assignable
1456
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1457
- : public is_assignable<typename add_lvalue_reference<_Tp>::type,
1458
- const typename add_rvalue_reference<_Tp>::type> {};
1459
- #else
1460
- : public is_copy_assignable<_Tp> {};
1461
- #endif
1462
-
1463
- // is_destructible
1464
-
1465
- template <class _Tp>
1466
- struct __destructible_test
1467
- {
1468
- _Tp __t;
1469
- };
1470
-
1471
- template <class _Tp>
1472
- decltype((_VSTD::declval<__destructible_test<_Tp> >().~__destructible_test<_Tp>(), true_type()))
1473
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1474
- __is_destructible_test(_Tp&&);
1475
- #else
1476
- __is_destructible_test(_Tp&);
1477
- #endif
1478
-
1479
- false_type
1480
- __is_destructible_test(__any);
1481
-
1482
- template <class _Tp, bool = is_void<_Tp>::value || is_abstract<_Tp>::value
1483
- || is_function<_Tp>::value>
1484
- struct __destructible_imp
1485
- : public common_type
1486
- <
1487
- decltype(__is_destructible_test(declval<_Tp>()))
1488
- >::type {};
1489
-
1490
- template <class _Tp>
1491
- struct __destructible_imp<_Tp, true>
1492
- : public false_type {};
1493
-
1494
- template <class _Tp>
1495
- struct is_destructible
1496
- : public __destructible_imp<_Tp> {};
1497
-
1498
- template <class _Tp>
1499
- struct is_destructible<_Tp[]>
1500
- : public false_type {};
1501
-
1502
- // move
1503
-
1504
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1505
-
1506
- template <class _Tp>
1507
- inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
1508
- typename remove_reference<_Tp>::type&&
1509
- move(_Tp&& __t) _NOEXCEPT
1510
- {
1511
- typedef typename remove_reference<_Tp>::type _Up;
1512
- return static_cast<_Up&&>(__t);
1513
- }
1514
-
1515
- template <class _Tp>
1516
- inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
1517
- _Tp&&
1518
- forward(typename std::remove_reference<_Tp>::type& __t) _NOEXCEPT
1519
- {
1520
- return static_cast<_Tp&&>(__t);
1521
- }
1522
-
1523
- template <class _Tp>
1524
- inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
1525
- _Tp&&
1526
- forward(typename std::remove_reference<_Tp>::type&& __t) _NOEXCEPT
1527
- {
1528
- static_assert(!std::is_lvalue_reference<_Tp>::value,
1529
- "Can not forward an rvalue as an lvalue.");
1530
- return static_cast<_Tp&&>(__t);
1531
- }
1532
-
1533
- #else // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1534
-
1535
- template <class _Tp>
1536
- inline _LIBCPP_INLINE_VISIBILITY
1537
- _Tp&
1538
- move(_Tp& __t)
1539
- {
1540
- return __t;
1541
- }
1542
-
1543
- template <class _Tp>
1544
- inline _LIBCPP_INLINE_VISIBILITY
1545
- const _Tp&
1546
- move(const _Tp& __t)
1547
- {
1548
- return __t;
1549
- }
1550
-
1551
- template <class _Tp>
1552
- inline _LIBCPP_INLINE_VISIBILITY
1553
- _Tp&
1554
- forward(typename std::remove_reference<_Tp>::type& __t) _NOEXCEPT
1555
- {
1556
- return __t;
1557
- }
1558
-
1559
-
1560
- template <class _Tp>
1561
- class __rv
1562
- {
1563
- typedef typename remove_reference<_Tp>::type _Trr;
1564
- _Trr& t_;
1565
- public:
1566
- _LIBCPP_INLINE_VISIBILITY
1567
- _Trr* operator->() {return &t_;}
1568
- _LIBCPP_INLINE_VISIBILITY
1569
- explicit __rv(_Trr& __t) : t_(__t) {}
1570
- };
1571
-
1572
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
1573
-
1574
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
1575
-
1576
- template <class _Tp>
1577
- inline _LIBCPP_INLINE_VISIBILITY
1578
- typename decay<_Tp>::type
1579
- __decay_copy(_Tp&& __t)
1580
- {
1581
- return _VSTD::forward<_Tp>(__t);
1582
- }
1583
-
1584
- #else
1585
-
1586
- template <class _Tp>
1587
- inline _LIBCPP_INLINE_VISIBILITY
1588
- typename decay<_Tp>::type
1589
- __decay_copy(const _Tp& __t)
1590
- {
1591
- return _VSTD::forward<_Tp>(__t);
1592
- }
1593
-
1594
- #endif
1595
-
1596
- template <class _MP, bool _IsMemberFuctionPtr, bool _IsMemberObjectPtr>
1597
- struct __member_pointer_traits_imp
1598
- {
1599
- };
1600
-
1601
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1602
-
1603
- template <class _Rp, class _Class, class ..._Param>
1604
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...), true, false>
1605
- {
1606
- typedef _Class _ClassType;
1607
- typedef _Rp _ReturnType;
1608
- };
1609
-
1610
- template <class _Rp, class _Class, class ..._Param>
1611
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const, true, false>
1612
- {
1613
- typedef _Class const _ClassType;
1614
- typedef _Rp _ReturnType;
1615
- };
1616
-
1617
- template <class _Rp, class _Class, class ..._Param>
1618
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile, true, false>
1619
- {
1620
- typedef _Class volatile _ClassType;
1621
- typedef _Rp _ReturnType;
1622
- };
1623
-
1624
- template <class _Rp, class _Class, class ..._Param>
1625
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile, true, false>
1626
- {
1627
- typedef _Class const volatile _ClassType;
1628
- typedef _Rp _ReturnType;
1629
- };
1630
-
1631
- #if __has_feature(cxx_reference_qualified_functions)
1632
-
1633
- template <class _Rp, class _Class, class ..._Param>
1634
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &, true, false>
1635
- {
1636
- typedef _Class& _ClassType;
1637
- typedef _Rp _ReturnType;
1638
- };
1639
-
1640
- template <class _Rp, class _Class, class ..._Param>
1641
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&, true, false>
1642
- {
1643
- typedef _Class const& _ClassType;
1644
- typedef _Rp _ReturnType;
1645
- };
1646
-
1647
- template <class _Rp, class _Class, class ..._Param>
1648
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&, true, false>
1649
- {
1650
- typedef _Class volatile& _ClassType;
1651
- typedef _Rp _ReturnType;
1652
- };
1653
-
1654
- template <class _Rp, class _Class, class ..._Param>
1655
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&, true, false>
1656
- {
1657
- typedef _Class const volatile& _ClassType;
1658
- typedef _Rp _ReturnType;
1659
- };
1660
-
1661
- template <class _Rp, class _Class, class ..._Param>
1662
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &&, true, false>
1663
- {
1664
- typedef _Class&& _ClassType;
1665
- typedef _Rp _ReturnType;
1666
- };
1667
-
1668
- template <class _Rp, class _Class, class ..._Param>
1669
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&&, true, false>
1670
- {
1671
- typedef _Class const&& _ClassType;
1672
- typedef _Rp _ReturnType;
1673
- };
1674
-
1675
- template <class _Rp, class _Class, class ..._Param>
1676
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&&, true, false>
1677
- {
1678
- typedef _Class volatile&& _ClassType;
1679
- typedef _Rp _ReturnType;
1680
- };
1681
-
1682
- template <class _Rp, class _Class, class ..._Param>
1683
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&&, true, false>
1684
- {
1685
- typedef _Class const volatile&& _ClassType;
1686
- typedef _Rp _ReturnType;
1687
- };
1688
-
1689
- #endif // __has_feature(cxx_reference_qualified_functions)
1690
-
1691
- #else // _LIBCPP_HAS_NO_VARIADICS
1692
-
1693
- template <class _Rp, class _Class>
1694
- struct __member_pointer_traits_imp<_Rp (_Class::*)(), true, false>
1695
- {
1696
- typedef _Class _ClassType;
1697
- typedef _Rp _ReturnType;
1698
- };
1699
-
1700
- template <class _Rp, class _Class, class _P0>
1701
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0), true, false>
1702
- {
1703
- typedef _Class _ClassType;
1704
- typedef _Rp _ReturnType;
1705
- };
1706
-
1707
- template <class _Rp, class _Class, class _P0, class _P1>
1708
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1), true, false>
1709
- {
1710
- typedef _Class _ClassType;
1711
- typedef _Rp _ReturnType;
1712
- };
1713
-
1714
- template <class _Rp, class _Class, class _P0, class _P1, class _P2>
1715
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2), true, false>
1716
- {
1717
- typedef _Class _ClassType;
1718
- typedef _Rp _ReturnType;
1719
- };
1720
-
1721
- template <class _Rp, class _Class>
1722
- struct __member_pointer_traits_imp<_Rp (_Class::*)() const, true, false>
1723
- {
1724
- typedef _Class const _ClassType;
1725
- typedef _Rp _ReturnType;
1726
- };
1727
-
1728
- template <class _Rp, class _Class, class _P0>
1729
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0) const, true, false>
1730
- {
1731
- typedef _Class const _ClassType;
1732
- typedef _Rp _ReturnType;
1733
- };
1734
-
1735
- template <class _Rp, class _Class, class _P0, class _P1>
1736
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1) const, true, false>
1737
- {
1738
- typedef _Class const _ClassType;
1739
- typedef _Rp _ReturnType;
1740
- };
1741
-
1742
- template <class _Rp, class _Class, class _P0, class _P1, class _P2>
1743
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2) const, true, false>
1744
- {
1745
- typedef _Class const _ClassType;
1746
- typedef _Rp _ReturnType;
1747
- };
1748
-
1749
- template <class _Rp, class _Class>
1750
- struct __member_pointer_traits_imp<_Rp (_Class::*)() volatile, true, false>
1751
- {
1752
- typedef _Class volatile _ClassType;
1753
- typedef _Rp _ReturnType;
1754
- };
1755
-
1756
- template <class _Rp, class _Class, class _P0>
1757
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0) volatile, true, false>
1758
- {
1759
- typedef _Class volatile _ClassType;
1760
- typedef _Rp _ReturnType;
1761
- };
1762
-
1763
- template <class _Rp, class _Class, class _P0, class _P1>
1764
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1) volatile, true, false>
1765
- {
1766
- typedef _Class volatile _ClassType;
1767
- typedef _Rp _ReturnType;
1768
- };
1769
-
1770
- template <class _Rp, class _Class, class _P0, class _P1, class _P2>
1771
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2) volatile, true, false>
1772
- {
1773
- typedef _Class volatile _ClassType;
1774
- typedef _Rp _ReturnType;
1775
- };
1776
-
1777
- template <class _Rp, class _Class>
1778
- struct __member_pointer_traits_imp<_Rp (_Class::*)() const volatile, true, false>
1779
- {
1780
- typedef _Class const volatile _ClassType;
1781
- typedef _Rp _ReturnType;
1782
- };
1783
-
1784
- template <class _Rp, class _Class, class _P0>
1785
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0) const volatile, true, false>
1786
- {
1787
- typedef _Class const volatile _ClassType;
1788
- typedef _Rp _ReturnType;
1789
- };
1790
-
1791
- template <class _Rp, class _Class, class _P0, class _P1>
1792
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1) const volatile, true, false>
1793
- {
1794
- typedef _Class const volatile _ClassType;
1795
- typedef _Rp _ReturnType;
1796
- };
1797
-
1798
- template <class _Rp, class _Class, class _P0, class _P1, class _P2>
1799
- struct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2) const volatile, true, false>
1800
- {
1801
- typedef _Class const volatile _ClassType;
1802
- typedef _Rp _ReturnType;
1803
- };
1804
-
1805
- #endif // _LIBCPP_HAS_NO_VARIADICS
1806
-
1807
- template <class _Rp, class _Class>
1808
- struct __member_pointer_traits_imp<_Rp _Class::*, false, true>
1809
- {
1810
- typedef _Class _ClassType;
1811
- typedef _Rp _ReturnType;
1812
- };
1813
-
1814
- template <class _MP>
1815
- struct __member_pointer_traits
1816
- : public __member_pointer_traits_imp<typename remove_cv<_MP>::type,
1817
- is_member_function_pointer<_MP>::value,
1818
- is_member_object_pointer<_MP>::value>
1819
- {
1820
- // typedef ... _ClassType;
1821
- // typedef ... _ReturnType;
1822
- };
1823
-
1824
- // result_of
1825
-
1826
- template <class _Callable> class result_of;
1827
-
1828
- #ifdef _LIBCPP_HAS_NO_VARIADICS
1829
-
1830
- template <class _Fn, bool, bool>
1831
- class __result_of
1832
- {
1833
- };
1834
-
1835
- template <class _Fn>
1836
- class __result_of<_Fn(), true, false>
1837
- {
1838
- public:
1839
- typedef decltype(declval<_Fn>()()) type;
1840
- };
1841
-
1842
- template <class _Fn, class _A0>
1843
- class __result_of<_Fn(_A0), true, false>
1844
- {
1845
- public:
1846
- typedef decltype(declval<_Fn>()(declval<_A0>())) type;
1847
- };
1848
-
1849
- template <class _Fn, class _A0, class _A1>
1850
- class __result_of<_Fn(_A0, _A1), true, false>
1851
- {
1852
- public:
1853
- typedef decltype(declval<_Fn>()(declval<_A0>(), declval<_A1>())) type;
1854
- };
1855
-
1856
- template <class _Fn, class _A0, class _A1, class _A2>
1857
- class __result_of<_Fn(_A0, _A1, _A2), true, false>
1858
- {
1859
- public:
1860
- typedef decltype(declval<_Fn>()(declval<_A0>(), declval<_A1>(), declval<_A2>())) type;
1861
- };
1862
-
1863
- template <class _MP, class _Tp, bool _IsMemberFunctionPtr>
1864
- struct __result_of_mp;
1865
-
1866
- // member function pointer
1867
-
1868
- template <class _MP, class _Tp>
1869
- struct __result_of_mp<_MP, _Tp, true>
1870
- : public common_type<typename __member_pointer_traits<_MP>::_ReturnType>
1871
- {
1872
- };
1873
-
1874
- // member data pointer
1875
-
1876
- template <class _MP, class _Tp, bool>
1877
- struct __result_of_mdp;
1878
-
1879
- template <class _Rp, class _Class, class _Tp>
1880
- struct __result_of_mdp<_Rp _Class::*, _Tp, false>
1881
- {
1882
- typedef typename __apply_cv<decltype(*_VSTD::declval<_Tp>()), _Rp>::type& type;
1883
- };
1884
-
1885
- template <class _Rp, class _Class, class _Tp>
1886
- struct __result_of_mdp<_Rp _Class::*, _Tp, true>
1887
- {
1888
- typedef typename __apply_cv<_Tp, _Rp>::type& type;
1889
- };
1890
-
1891
- template <class _Rp, class _Class, class _Tp>
1892
- struct __result_of_mp<_Rp _Class::*, _Tp, false>
1893
- : public __result_of_mdp<_Rp _Class::*, _Tp,
1894
- is_base_of<_Class, typename remove_reference<_Tp>::type>::value>
1895
- {
1896
- };
1897
-
1898
-
1899
-
1900
- template <class _Fn, class _Tp>
1901
- class __result_of<_Fn(_Tp), false, true> // _Fn must be member pointer
1902
- : public __result_of_mp<typename remove_reference<_Fn>::type,
1903
- _Tp,
1904
- is_member_function_pointer<typename remove_reference<_Fn>::type>::value>
1905
- {
1906
- };
1907
-
1908
- template <class _Fn, class _Tp, class _A0>
1909
- class __result_of<_Fn(_Tp, _A0), false, true> // _Fn must be member pointer
1910
- : public __result_of_mp<typename remove_reference<_Fn>::type,
1911
- _Tp,
1912
- is_member_function_pointer<typename remove_reference<_Fn>::type>::value>
1913
- {
1914
- };
1915
-
1916
- template <class _Fn, class _Tp, class _A0, class _A1>
1917
- class __result_of<_Fn(_Tp, _A0, _A1), false, true> // _Fn must be member pointer
1918
- : public __result_of_mp<typename remove_reference<_Fn>::type,
1919
- _Tp,
1920
- is_member_function_pointer<typename remove_reference<_Fn>::type>::value>
1921
- {
1922
- };
1923
-
1924
- template <class _Fn, class _Tp, class _A0, class _A1, class _A2>
1925
- class __result_of<_Fn(_Tp, _A0, _A1, _A2), false, true> // _Fn must be member pointer
1926
- : public __result_of_mp<typename remove_reference<_Fn>::type,
1927
- _Tp,
1928
- is_member_function_pointer<typename remove_reference<_Fn>::type>::value>
1929
- {
1930
- };
1931
-
1932
- // result_of
1933
-
1934
- template <class _Fn>
1935
- class _LIBCPP_TYPE_VIS_ONLY result_of<_Fn()>
1936
- : public __result_of<_Fn(),
1937
- is_class<typename remove_reference<_Fn>::type>::value ||
1938
- is_function<typename remove_reference<_Fn>::type>::value,
1939
- is_member_pointer<typename remove_reference<_Fn>::type>::value
1940
- >
1941
- {
1942
- };
1943
-
1944
- template <class _Fn, class _A0>
1945
- class _LIBCPP_TYPE_VIS_ONLY result_of<_Fn(_A0)>
1946
- : public __result_of<_Fn(_A0),
1947
- is_class<typename remove_reference<_Fn>::type>::value ||
1948
- is_function<typename remove_reference<_Fn>::type>::value,
1949
- is_member_pointer<typename remove_reference<_Fn>::type>::value
1950
- >
1951
- {
1952
- };
1953
-
1954
- template <class _Fn, class _A0, class _A1>
1955
- class _LIBCPP_TYPE_VIS_ONLY result_of<_Fn(_A0, _A1)>
1956
- : public __result_of<_Fn(_A0, _A1),
1957
- is_class<typename remove_reference<_Fn>::type>::value ||
1958
- is_function<typename remove_reference<_Fn>::type>::value,
1959
- is_member_pointer<typename remove_reference<_Fn>::type>::value
1960
- >
1961
- {
1962
- };
1963
-
1964
- template <class _Fn, class _A0, class _A1, class _A2>
1965
- class _LIBCPP_TYPE_VIS_ONLY result_of<_Fn(_A0, _A1, _A2)>
1966
- : public __result_of<_Fn(_A0, _A1, _A2),
1967
- is_class<typename remove_reference<_Fn>::type>::value ||
1968
- is_function<typename remove_reference<_Fn>::type>::value,
1969
- is_member_pointer<typename remove_reference<_Fn>::type>::value
1970
- >
1971
- {
1972
- };
1973
-
1974
- #endif // _LIBCPP_HAS_NO_VARIADICS
1975
-
1976
- #ifndef _LIBCPP_HAS_NO_VARIADICS
1977
-
1978
- // template <class T, class... Args> struct is_constructible;
1979
-
1980
- // main is_constructible test
1981
-
1982
- template <class _Tp, class ..._Args>
1983
- typename __select_2nd<decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...))), true_type>::type
1984
- __is_constructible_test(_Tp&&, _Args&& ...);
1985
-
1986
- template <class ..._Args>
1987
- false_type
1988
- __is_constructible_test(__any, _Args&& ...);
1989
-
1990
- template <bool, class _Tp, class... _Args>
1991
- struct __is_constructible // false, _Tp is not a scalar
1992
- : public common_type
1993
- <
1994
- decltype(__is_constructible_test(declval<_Tp>(), declval<_Args>()...))
1995
- >::type
1996
- {};
1997
-
1998
- // function types are not constructible
1999
-
2000
- template <class _Rp, class... _A1, class... _A2>
2001
- struct __is_constructible<false, _Rp(_A1...), _A2...>
2002
- : public false_type
2003
- {};
2004
-
2005
- // handle scalars and reference types
2006
-
2007
- // Scalars are default constructible, references are not
2008
-
2009
- template <class _Tp>
2010
- struct __is_constructible<true, _Tp>
2011
- : public is_scalar<_Tp>
2012
- {};
2013
-
2014
- // Scalars and references are constructible from one arg if that arg is
2015
- // implicitly convertible to the scalar or reference.
2016
-
2017
- template <class _Tp>
2018
- struct __is_constructible_ref
2019
- {
2020
- true_type static __lxx(_Tp);
2021
- false_type static __lxx(...);
2022
- };
2023
-
2024
- template <class _Tp, class _A0>
2025
- struct __is_constructible<true, _Tp, _A0>
2026
- : public common_type
2027
- <
2028
- decltype(__is_constructible_ref<_Tp>::__lxx(declval<_A0>()))
2029
- >::type
2030
- {};
2031
-
2032
- // Scalars and references are not constructible from multiple args.
2033
-
2034
- template <class _Tp, class _A0, class ..._Args>
2035
- struct __is_constructible<true, _Tp, _A0, _Args...>
2036
- : public false_type
2037
- {};
2038
-
2039
- // Treat scalars and reference types separately
2040
-
2041
- template <bool, class _Tp, class... _Args>
2042
- struct __is_constructible_void_check
2043
- : public __is_constructible<is_scalar<_Tp>::value || is_reference<_Tp>::value,
2044
- _Tp, _Args...>
2045
- {};
2046
-
2047
- // If any of T or Args is void, is_constructible should be false
2048
-
2049
- template <class _Tp, class... _Args>
2050
- struct __is_constructible_void_check<true, _Tp, _Args...>
2051
- : public false_type
2052
- {};
2053
-
2054
- template <class ..._Args> struct __contains_void;
2055
-
2056
- template <> struct __contains_void<> : false_type {};
2057
-
2058
- template <class _A0, class ..._Args>
2059
- struct __contains_void<_A0, _Args...>
2060
- {
2061
- static const bool value = is_void<_A0>::value ||
2062
- __contains_void<_Args...>::value;
2063
- };
2064
-
2065
- // is_constructible entry point
2066
-
2067
- template <class _Tp, class... _Args>
2068
- struct _LIBCPP_TYPE_VIS_ONLY is_constructible
2069
- : public __is_constructible_void_check<__contains_void<_Tp, _Args...>::value
2070
- || is_abstract<_Tp>::value,
2071
- _Tp, _Args...>
2072
- {};
2073
-
2074
- // Array types are default constructible if their element type
2075
- // is default constructible
2076
-
2077
- template <class _Ap, size_t _Np>
2078
- struct __is_constructible<false, _Ap[_Np]>
2079
- : public is_constructible<typename remove_all_extents<_Ap>::type>
2080
- {};
2081
-
2082
- // Otherwise array types are not constructible by this syntax
2083
-
2084
- template <class _Ap, size_t _Np, class ..._Args>
2085
- struct __is_constructible<false, _Ap[_Np], _Args...>
2086
- : public false_type
2087
- {};
2088
-
2089
- // Incomplete array types are not constructible
2090
-
2091
- template <class _Ap, class ..._Args>
2092
- struct __is_constructible<false, _Ap[], _Args...>
2093
- : public false_type
2094
- {};
2095
-
2096
- #else // _LIBCPP_HAS_NO_VARIADICS
2097
-
2098
- // template <class T> struct is_constructible0;
2099
-
2100
- // main is_constructible0 test
2101
-
2102
- template <class _Tp>
2103
- decltype((_Tp(), true_type()))
2104
- __is_constructible0_test(_Tp&);
2105
-
2106
- false_type
2107
- __is_constructible0_test(__any);
2108
-
2109
- template <class _Tp, class _A0>
2110
- decltype((_Tp(_VSTD::declval<_A0>()), true_type()))
2111
- __is_constructible1_test(_Tp&, _A0&);
2112
-
2113
- template <class _A0>
2114
- false_type
2115
- __is_constructible1_test(__any, _A0&);
2116
-
2117
- template <class _Tp, class _A0, class _A1>
2118
- decltype((_Tp(_VSTD::declval<_A0>(), _VSTD::declval<_A1>()), true_type()))
2119
- __is_constructible2_test(_Tp&, _A0&, _A1&);
2120
-
2121
- template <class _A0, class _A1>
2122
- false_type
2123
- __is_constructible2_test(__any, _A0&, _A1&);
2124
-
2125
- template <bool, class _Tp>
2126
- struct __is_constructible0_imp // false, _Tp is not a scalar
2127
- : public common_type
2128
- <
2129
- decltype(__is_constructible0_test(declval<_Tp&>()))
2130
- >::type
2131
- {};
2132
-
2133
- template <bool, class _Tp, class _A0>
2134
- struct __is_constructible1_imp // false, _Tp is not a scalar
2135
- : public common_type
2136
- <
2137
- decltype(__is_constructible1_test(declval<_Tp&>(), declval<_A0&>()))
2138
- >::type
2139
- {};
2140
-
2141
- template <bool, class _Tp, class _A0, class _A1>
2142
- struct __is_constructible2_imp // false, _Tp is not a scalar
2143
- : public common_type
2144
- <
2145
- decltype(__is_constructible2_test(declval<_Tp&>(), declval<_A0>(), declval<_A1>()))
2146
- >::type
2147
- {};
2148
-
2149
- // handle scalars and reference types
2150
-
2151
- // Scalars are default constructible, references are not
2152
-
2153
- template <class _Tp>
2154
- struct __is_constructible0_imp<true, _Tp>
2155
- : public is_scalar<_Tp>
2156
- {};
2157
-
2158
- template <class _Tp, class _A0>
2159
- struct __is_constructible1_imp<true, _Tp, _A0>
2160
- : public is_convertible<_A0, _Tp>
2161
- {};
2162
-
2163
- template <class _Tp, class _A0, class _A1>
2164
- struct __is_constructible2_imp<true, _Tp, _A0, _A1>
2165
- : public false_type
2166
- {};
2167
-
2168
- // Treat scalars and reference types separately
2169
-
2170
- template <bool, class _Tp>
2171
- struct __is_constructible0_void_check
2172
- : public __is_constructible0_imp<is_scalar<_Tp>::value || is_reference<_Tp>::value,
2173
- _Tp>
2174
- {};
2175
-
2176
- template <bool, class _Tp, class _A0>
2177
- struct __is_constructible1_void_check
2178
- : public __is_constructible1_imp<is_scalar<_Tp>::value || is_reference<_Tp>::value,
2179
- _Tp, _A0>
2180
- {};
2181
-
2182
- template <bool, class _Tp, class _A0, class _A1>
2183
- struct __is_constructible2_void_check
2184
- : public __is_constructible2_imp<is_scalar<_Tp>::value || is_reference<_Tp>::value,
2185
- _Tp, _A0, _A1>
2186
- {};
2187
-
2188
- // If any of T or Args is void, is_constructible should be false
2189
-
2190
- template <class _Tp>
2191
- struct __is_constructible0_void_check<true, _Tp>
2192
- : public false_type
2193
- {};
2194
-
2195
- template <class _Tp, class _A0>
2196
- struct __is_constructible1_void_check<true, _Tp, _A0>
2197
- : public false_type
2198
- {};
2199
-
2200
- template <class _Tp, class _A0, class _A1>
2201
- struct __is_constructible2_void_check<true, _Tp, _A0, _A1>
2202
- : public false_type
2203
- {};
2204
-
2205
- // is_constructible entry point
2206
-
2207
- namespace __is_construct
2208
- {
2209
-
2210
- struct __nat {};
2211
-
2212
- }
2213
-
2214
- template <class _Tp, class _A0 = __is_construct::__nat,
2215
- class _A1 = __is_construct::__nat>
2216
- struct _LIBCPP_TYPE_VIS_ONLY is_constructible
2217
- : public __is_constructible2_void_check<is_void<_Tp>::value
2218
- || is_abstract<_Tp>::value
2219
- || is_function<_Tp>::value
2220
- || is_void<_A0>::value
2221
- || is_void<_A1>::value,
2222
- _Tp, _A0, _A1>
2223
- {};
2224
-
2225
- template <class _Tp>
2226
- struct _LIBCPP_TYPE_VIS_ONLY is_constructible<_Tp, __is_construct::__nat, __is_construct::__nat>
2227
- : public __is_constructible0_void_check<is_void<_Tp>::value
2228
- || is_abstract<_Tp>::value
2229
- || is_function<_Tp>::value,
2230
- _Tp>
2231
- {};
2232
-
2233
- template <class _Tp, class _A0>
2234
- struct _LIBCPP_TYPE_VIS_ONLY is_constructible<_Tp, _A0, __is_construct::__nat>
2235
- : public __is_constructible1_void_check<is_void<_Tp>::value
2236
- || is_abstract<_Tp>::value
2237
- || is_function<_Tp>::value
2238
- || is_void<_A0>::value,
2239
- _Tp, _A0>
2240
- {};
2241
-
2242
- // Array types are default constructible if their element type
2243
- // is default constructible
2244
-
2245
- template <class _Ap, size_t _Np>
2246
- struct __is_constructible0_imp<false, _Ap[_Np]>
2247
- : public is_constructible<typename remove_all_extents<_Ap>::type>
2248
- {};
2249
-
2250
- template <class _Ap, size_t _Np, class _A0>
2251
- struct __is_constructible1_imp<false, _Ap[_Np], _A0>
2252
- : public false_type
2253
- {};
2254
-
2255
- template <class _Ap, size_t _Np, class _A0, class _A1>
2256
- struct __is_constructible2_imp<false, _Ap[_Np], _A0, _A1>
2257
- : public false_type
2258
- {};
2259
-
2260
- // Incomplete array types are not constructible
2261
-
2262
- template <class _Ap>
2263
- struct __is_constructible0_imp<false, _Ap[]>
2264
- : public false_type
2265
- {};
2266
-
2267
- template <class _Ap, class _A0>
2268
- struct __is_constructible1_imp<false, _Ap[], _A0>
2269
- : public false_type
2270
- {};
2271
-
2272
- template <class _Ap, class _A0, class _A1>
2273
- struct __is_constructible2_imp<false, _Ap[], _A0, _A1>
2274
- : public false_type
2275
- {};
2276
-
2277
- #endif // _LIBCPP_HAS_NO_VARIADICS
2278
-
2279
- // is_default_constructible
2280
-
2281
- template <class _Tp>
2282
- struct _LIBCPP_TYPE_VIS_ONLY is_default_constructible
2283
- : public is_constructible<_Tp>
2284
- {};
2285
-
2286
- // is_copy_constructible
2287
-
2288
- template <class _Tp>
2289
- struct _LIBCPP_TYPE_VIS_ONLY is_copy_constructible
2290
- : public is_constructible<_Tp, const typename add_lvalue_reference<_Tp>::type>
2291
- {};
2292
-
2293
- // is_move_constructible
2294
-
2295
- template <class _Tp>
2296
- struct _LIBCPP_TYPE_VIS_ONLY is_move_constructible
2297
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2298
- : public is_constructible<_Tp, typename add_rvalue_reference<_Tp>::type>
2299
- #else
2300
- : public is_copy_constructible<_Tp>
2301
- #endif
2302
- {};
2303
-
2304
- // is_trivially_constructible
2305
-
2306
- #ifndef _LIBCPP_HAS_NO_VARIADICS
2307
-
2308
- #if __has_feature(is_trivially_constructible)
2309
-
2310
- template <class _Tp, class... _Args>
2311
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible
2312
- : integral_constant<bool, __is_trivially_constructible(_Tp, _Args...)>
2313
- {
2314
- };
2315
-
2316
- #else // !__has_feature(is_trivially_constructible)
2317
-
2318
- template <class _Tp, class... _Args>
2319
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible
2320
- : false_type
2321
- {
2322
- };
2323
-
2324
- template <class _Tp>
2325
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp>
2326
- #if __has_feature(has_trivial_constructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2327
- : integral_constant<bool, __has_trivial_constructor(_Tp)>
2328
- #else
2329
- : integral_constant<bool, is_scalar<_Tp>::value>
2330
- #endif
2331
- {
2332
- };
2333
-
2334
- template <class _Tp>
2335
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2336
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, _Tp&&>
2337
- #else
2338
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, _Tp>
2339
- #endif
2340
- : integral_constant<bool, is_scalar<_Tp>::value>
2341
- {
2342
- };
2343
-
2344
- template <class _Tp>
2345
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, const _Tp&>
2346
- : integral_constant<bool, is_scalar<_Tp>::value>
2347
- {
2348
- };
2349
-
2350
- template <class _Tp>
2351
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, _Tp&>
2352
- : integral_constant<bool, is_scalar<_Tp>::value>
2353
- {
2354
- };
2355
-
2356
- #endif // !__has_feature(is_trivially_constructible)
2357
-
2358
- #else // _LIBCPP_HAS_NO_VARIADICS
2359
-
2360
- template <class _Tp, class _A0 = __is_construct::__nat,
2361
- class _A1 = __is_construct::__nat>
2362
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible
2363
- : false_type
2364
- {
2365
- };
2366
-
2367
- #if __has_feature(is_trivially_constructible)
2368
-
2369
- template <class _Tp>
2370
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, __is_construct::__nat,
2371
- __is_construct::__nat>
2372
- : integral_constant<bool, __is_trivially_constructible(_Tp)>
2373
- {
2374
- };
2375
-
2376
- template <class _Tp>
2377
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, _Tp,
2378
- __is_construct::__nat>
2379
- : integral_constant<bool, __is_trivially_constructible(_Tp, _Tp)>
2380
- {
2381
- };
2382
-
2383
- template <class _Tp>
2384
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, const _Tp&,
2385
- __is_construct::__nat>
2386
- : integral_constant<bool, __is_trivially_constructible(_Tp, const _Tp&)>
2387
- {
2388
- };
2389
-
2390
- template <class _Tp>
2391
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, _Tp&,
2392
- __is_construct::__nat>
2393
- : integral_constant<bool, __is_trivially_constructible(_Tp, _Tp&)>
2394
- {
2395
- };
2396
-
2397
- #else // !__has_feature(is_trivially_constructible)
2398
-
2399
- template <class _Tp>
2400
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, __is_construct::__nat,
2401
- __is_construct::__nat>
2402
- : integral_constant<bool, is_scalar<_Tp>::value>
2403
- {
2404
- };
2405
-
2406
- template <class _Tp>
2407
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, _Tp,
2408
- __is_construct::__nat>
2409
- : integral_constant<bool, is_scalar<_Tp>::value>
2410
- {
2411
- };
2412
-
2413
- template <class _Tp>
2414
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, const _Tp&,
2415
- __is_construct::__nat>
2416
- : integral_constant<bool, is_scalar<_Tp>::value>
2417
- {
2418
- };
2419
-
2420
- template <class _Tp>
2421
- struct _LIBCPP_TYPE_VIS_ONLY is_trivially_constructible<_Tp, _Tp&,
2422
- __is_construct::__nat>
2423
- : integral_constant<bool, is_scalar<_Tp>::value>
2424
- {
2425
- };
2426
-
2427
- #endif // !__has_feature(is_trivially_constructible)
2428
-
2429
- #endif // _LIBCPP_HAS_NO_VARIADICS
2430
-
2431
- // is_trivially_default_constructible
2432
-
2433
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_default_constructible
2434
- : public is_trivially_constructible<_Tp>
2435
- {};
2436
-
2437
- // is_trivially_copy_constructible
2438
-
2439
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_copy_constructible
2440
- : public is_trivially_constructible<_Tp, const typename add_lvalue_reference<_Tp>::type>
2441
- {};
2442
-
2443
- // is_trivially_move_constructible
2444
-
2445
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_move_constructible
2446
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2447
- : public is_trivially_constructible<_Tp, typename add_rvalue_reference<_Tp>::type>
2448
- #else
2449
- : public is_trivially_copy_constructible<_Tp>
2450
- #endif
2451
- {};
2452
-
2453
- // is_trivially_assignable
2454
-
2455
- #if __has_feature(is_trivially_constructible)
2456
-
2457
- template <class _Tp, class _Arg>
2458
- struct is_trivially_assignable
2459
- : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
2460
- {
2461
- };
2462
-
2463
- #else // !__has_feature(is_trivially_constructible)
2464
-
2465
- template <class _Tp, class _Arg>
2466
- struct is_trivially_assignable
2467
- : public false_type {};
2468
-
2469
- template <class _Tp>
2470
- struct is_trivially_assignable<_Tp&, _Tp>
2471
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2472
-
2473
- template <class _Tp>
2474
- struct is_trivially_assignable<_Tp&, _Tp&>
2475
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2476
-
2477
- template <class _Tp>
2478
- struct is_trivially_assignable<_Tp&, const _Tp&>
2479
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2480
-
2481
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2482
-
2483
- template <class _Tp>
2484
- struct is_trivially_assignable<_Tp&, _Tp&&>
2485
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2486
-
2487
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
2488
-
2489
- #endif // !__has_feature(is_trivially_constructible)
2490
-
2491
- // is_trivially_copy_assignable
2492
-
2493
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_copy_assignable
2494
- : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
2495
- const typename add_lvalue_reference<_Tp>::type>
2496
- {};
2497
-
2498
- // is_trivially_move_assignable
2499
-
2500
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_move_assignable
2501
- : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
2502
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2503
- typename add_rvalue_reference<_Tp>::type>
2504
- #else
2505
- typename add_lvalue_reference<_Tp>::type>
2506
- #endif
2507
- {};
2508
-
2509
- // is_trivially_destructible
2510
-
2511
- #if __has_feature(has_trivial_destructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2512
-
2513
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_destructible
2514
- : public integral_constant<bool, __has_trivial_destructor(_Tp)> {};
2515
-
2516
- #else // _LIBCPP_HAS_TYPE_TRAITS
2517
-
2518
- template <class _Tp> struct __libcpp_trivial_destructor
2519
- : public integral_constant<bool, is_scalar<_Tp>::value ||
2520
- is_reference<_Tp>::value> {};
2521
-
2522
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_destructible
2523
- : public __libcpp_trivial_destructor<typename remove_all_extents<_Tp>::type> {};
2524
-
2525
- #endif // _LIBCPP_HAS_TYPE_TRAITS
2526
-
2527
- // is_nothrow_constructible
2528
-
2529
- #ifndef _LIBCPP_HAS_NO_VARIADICS
2530
-
2531
- #if __has_feature(cxx_noexcept)
2532
-
2533
- template <bool, class _Tp, class... _Args> struct __is_nothrow_constructible;
2534
-
2535
- template <class _Tp, class... _Args>
2536
- struct __is_nothrow_constructible<true, _Tp, _Args...>
2537
- : public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))>
2538
- {
2539
- };
2540
-
2541
- template <class _Tp, class... _Args>
2542
- struct __is_nothrow_constructible<false, _Tp, _Args...>
2543
- : public false_type
2544
- {
2545
- };
2546
-
2547
- template <class _Tp, class... _Args>
2548
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible
2549
- : __is_nothrow_constructible<is_constructible<_Tp, _Args...>::value, _Tp, _Args...>
2550
- {
2551
- };
2552
-
2553
- template <class _Tp, size_t _Ns>
2554
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp[_Ns]>
2555
- : __is_nothrow_constructible<is_constructible<_Tp>::value, _Tp>
2556
- {
2557
- };
2558
-
2559
- #else // __has_feature(cxx_noexcept)
2560
-
2561
- template <class _Tp, class... _Args>
2562
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible
2563
- : false_type
2564
- {
2565
- };
2566
-
2567
- template <class _Tp>
2568
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp>
2569
- #if __has_feature(has_nothrow_constructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2570
- : integral_constant<bool, __has_nothrow_constructor(_Tp)>
2571
- #else
2572
- : integral_constant<bool, is_scalar<_Tp>::value>
2573
- #endif
2574
- {
2575
- };
2576
-
2577
- template <class _Tp>
2578
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2579
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, _Tp&&>
2580
- #else
2581
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, _Tp>
2582
- #endif
2583
- #if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2584
- : integral_constant<bool, __has_nothrow_copy(_Tp)>
2585
- #else
2586
- : integral_constant<bool, is_scalar<_Tp>::value>
2587
- #endif
2588
- {
2589
- };
2590
-
2591
- template <class _Tp>
2592
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, const _Tp&>
2593
- #if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2594
- : integral_constant<bool, __has_nothrow_copy(_Tp)>
2595
- #else
2596
- : integral_constant<bool, is_scalar<_Tp>::value>
2597
- #endif
2598
- {
2599
- };
2600
-
2601
- template <class _Tp>
2602
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, _Tp&>
2603
- #if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2604
- : integral_constant<bool, __has_nothrow_copy(_Tp)>
2605
- #else
2606
- : integral_constant<bool, is_scalar<_Tp>::value>
2607
- #endif
2608
- {
2609
- };
2610
-
2611
- #endif // __has_feature(cxx_noexcept)
2612
-
2613
- #else // _LIBCPP_HAS_NO_VARIADICS
2614
-
2615
- template <class _Tp, class _A0 = __is_construct::__nat,
2616
- class _A1 = __is_construct::__nat>
2617
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible
2618
- : false_type
2619
- {
2620
- };
2621
-
2622
- template <class _Tp>
2623
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, __is_construct::__nat,
2624
- __is_construct::__nat>
2625
- #if __has_feature(has_nothrow_constructor) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2626
- : integral_constant<bool, __has_nothrow_constructor(_Tp)>
2627
- #else
2628
- : integral_constant<bool, is_scalar<_Tp>::value>
2629
- #endif
2630
- {
2631
- };
2632
-
2633
- template <class _Tp>
2634
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, _Tp,
2635
- __is_construct::__nat>
2636
- #if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2637
- : integral_constant<bool, __has_nothrow_copy(_Tp)>
2638
- #else
2639
- : integral_constant<bool, is_scalar<_Tp>::value>
2640
- #endif
2641
- {
2642
- };
2643
-
2644
- template <class _Tp>
2645
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, const _Tp&,
2646
- __is_construct::__nat>
2647
- #if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2648
- : integral_constant<bool, __has_nothrow_copy(_Tp)>
2649
- #else
2650
- : integral_constant<bool, is_scalar<_Tp>::value>
2651
- #endif
2652
- {
2653
- };
2654
-
2655
- template <class _Tp>
2656
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_constructible<_Tp, _Tp&,
2657
- __is_construct::__nat>
2658
- #if __has_feature(has_nothrow_copy) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2659
- : integral_constant<bool, __has_nothrow_copy(_Tp)>
2660
- #else
2661
- : integral_constant<bool, is_scalar<_Tp>::value>
2662
- #endif
2663
- {
2664
- };
2665
-
2666
- #endif // _LIBCPP_HAS_NO_VARIADICS
2667
-
2668
- // is_nothrow_default_constructible
2669
-
2670
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_default_constructible
2671
- : public is_nothrow_constructible<_Tp>
2672
- {};
2673
-
2674
- // is_nothrow_copy_constructible
2675
-
2676
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_copy_constructible
2677
- : public is_nothrow_constructible<_Tp, const typename add_lvalue_reference<_Tp>::type>
2678
- {};
2679
-
2680
- // is_nothrow_move_constructible
2681
-
2682
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_move_constructible
2683
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2684
- : public is_nothrow_constructible<_Tp, typename add_rvalue_reference<_Tp>::type>
2685
- #else
2686
- : public is_nothrow_copy_constructible<_Tp>
2687
- #endif
2688
- {};
2689
-
2690
- // is_nothrow_assignable
2691
-
2692
- #if __has_feature(cxx_noexcept)
2693
-
2694
- template <bool, class _Tp, class _Arg> struct __is_nothrow_assignable;
2695
-
2696
- template <class _Tp, class _Arg>
2697
- struct __is_nothrow_assignable<false, _Tp, _Arg>
2698
- : public false_type
2699
- {
2700
- };
2701
-
2702
- template <class _Tp, class _Arg>
2703
- struct __is_nothrow_assignable<true, _Tp, _Arg>
2704
- : public integral_constant<bool, noexcept(_VSTD::declval<_Tp>() = _VSTD::declval<_Arg>()) >
2705
- {
2706
- };
2707
-
2708
- template <class _Tp, class _Arg>
2709
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_assignable
2710
- : public __is_nothrow_assignable<is_assignable<_Tp, _Arg>::value, _Tp, _Arg>
2711
- {
2712
- };
2713
-
2714
- #else // __has_feature(cxx_noexcept)
2715
-
2716
- template <class _Tp, class _Arg>
2717
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_assignable
2718
- : public false_type {};
2719
-
2720
- template <class _Tp>
2721
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_assignable<_Tp&, _Tp>
2722
- #if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2723
- : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
2724
- #else
2725
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2726
- #endif
2727
-
2728
- template <class _Tp>
2729
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_assignable<_Tp&, _Tp&>
2730
- #if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2731
- : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
2732
- #else
2733
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2734
- #endif
2735
-
2736
- template <class _Tp>
2737
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_assignable<_Tp&, const _Tp&>
2738
- #if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2739
- : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
2740
- #else
2741
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2742
- #endif
2743
-
2744
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2745
-
2746
- template <class _Tp>
2747
- struct is_nothrow_assignable<_Tp&, _Tp&&>
2748
- #if __has_feature(has_nothrow_assign) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2749
- : integral_constant<bool, __has_nothrow_assign(_Tp)> {};
2750
- #else
2751
- : integral_constant<bool, is_scalar<_Tp>::value> {};
2752
- #endif
2753
-
2754
- #endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
2755
-
2756
- #endif // __has_feature(cxx_noexcept)
2757
-
2758
- // is_nothrow_copy_assignable
2759
-
2760
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_copy_assignable
2761
- : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type,
2762
- const typename add_lvalue_reference<_Tp>::type>
2763
- {};
2764
-
2765
- // is_nothrow_move_assignable
2766
-
2767
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_move_assignable
2768
- : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type,
2769
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2770
- typename add_rvalue_reference<_Tp>::type>
2771
- #else
2772
- typename add_lvalue_reference<_Tp>::type>
2773
- #endif
2774
- {};
2775
-
2776
- // is_nothrow_destructible
2777
-
2778
- #if __has_feature(cxx_noexcept)
2779
-
2780
- template <bool, class _Tp> struct __is_nothrow_destructible;
2781
-
2782
- template <class _Tp>
2783
- struct __is_nothrow_destructible<false, _Tp>
2784
- : public false_type
2785
- {
2786
- };
2787
-
2788
- template <class _Tp>
2789
- struct __is_nothrow_destructible<true, _Tp>
2790
- : public integral_constant<bool, noexcept(_VSTD::declval<_Tp>().~_Tp()) >
2791
- {
2792
- };
2793
-
2794
- template <class _Tp>
2795
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_destructible
2796
- : public __is_nothrow_destructible<is_destructible<_Tp>::value, _Tp>
2797
- {
2798
- };
2799
-
2800
- template <class _Tp, size_t _Ns>
2801
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_destructible<_Tp[_Ns]>
2802
- : public is_nothrow_destructible<_Tp>
2803
- {
2804
- };
2805
-
2806
- template <class _Tp>
2807
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_destructible<_Tp&>
2808
- : public true_type
2809
- {
2810
- };
2811
-
2812
- #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
2813
-
2814
- template <class _Tp>
2815
- struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_destructible<_Tp&&>
2816
- : public true_type
2817
- {
2818
- };
2819
-
2820
- #endif
2821
-
2822
- #else
2823
-
2824
- template <class _Tp> struct __libcpp_nothrow_destructor
2825
- : public integral_constant<bool, is_scalar<_Tp>::value ||
2826
- is_reference<_Tp>::value> {};
2827
-
2828
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_nothrow_destructible
2829
- : public __libcpp_nothrow_destructor<typename remove_all_extents<_Tp>::type> {};
2830
-
2831
- #endif
2832
-
2833
- // is_pod
2834
-
2835
- #if __has_feature(is_pod) || (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
2836
-
2837
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_pod
2838
- : public integral_constant<bool, __is_pod(_Tp)> {};
2839
-
2840
- #else // _LIBCPP_HAS_TYPE_TRAITS
2841
-
2842
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_pod
2843
- : public integral_constant<bool, is_trivially_default_constructible<_Tp>::value &&
2844
- is_trivially_copy_constructible<_Tp>::value &&
2845
- is_trivially_copy_assignable<_Tp>::value &&
2846
- is_trivially_destructible<_Tp>::value> {};
2847
-
2848
- #endif // _LIBCPP_HAS_TYPE_TRAITS
2849
-
2850
- // is_literal_type;
2851
-
2852
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_literal_type
2853
- #if __has_feature(is_literal)
2854
- : public integral_constant<bool, __is_literal(_Tp)>
2855
- #else
2856
- : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value ||
2857
- is_reference<typename remove_all_extents<_Tp>::type>::value>
2858
- #endif
2859
- {};
2860
-
2861
- // is_standard_layout;
2862
-
2863
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_standard_layout
2864
- #if __has_feature(is_standard_layout)
2865
- : public integral_constant<bool, __is_standard_layout(_Tp)>
2866
- #else
2867
- : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value>
2868
- #endif
2869
- {};
2870
-
2871
- // is_trivially_copyable;
2872
-
2873
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivially_copyable
2874
- #if __has_feature(is_trivially_copyable)
2875
- : public integral_constant<bool, __is_trivially_copyable(_Tp)>
2876
- #else
2877
- : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value>
2878
- #endif
2879
- {};
2880
-
2881
- // is_trivial;
2882
-
2883
- template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_trivial
2884
- #if __has_feature(is_trivial)
2885
- : public integral_constant<bool, __is_trivial(_Tp)>
2886
- #else
2887
- : integral_constant<bool, is_trivially_copyable<_Tp>::value &&
2888
- is_trivially_default_constructible<_Tp>::value>
2889
- #endif
2890
- {};
2891
-
2892
- #ifndef _LIBCPP_HAS_NO_VARIADICS
2893
-
2894
- // Check for complete types
2895
-
2896
- template <class ..._Tp> struct __check_complete;
2897
-
2898
- template <>
2899
- struct __check_complete<>
2900
- {
2901
- };
2902
-
2903
- template <class _Hp, class _T0, class ..._Tp>
2904
- struct __check_complete<_Hp, _T0, _Tp...>
2905
- : private __check_complete<_Hp>,
2906
- private __check_complete<_T0, _Tp...>
2907
- {
2908
- };
2909
-
2910
- template <class _Hp>
2911
- struct __check_complete<_Hp, _Hp>
2912
- : private __check_complete<_Hp>
2913
- {
2914
- };
2915
-
2916
- template <class _Tp>
2917
- struct __check_complete<_Tp>
2918
- {
2919
- static_assert(sizeof(_Tp) > 0, "Type must be complete.");
2920
- };
2921
-
2922
- template <class _Tp>
2923
- struct __check_complete<_Tp&>
2924
- : private __check_complete<_Tp>
2925
- {
2926
- };
2927
-
2928
- template <class _Tp>
2929
- struct __check_complete<_Tp&&>
2930
- : private __check_complete<_Tp>
2931
- {
2932
- };
2933
-
2934
- template <class _Rp, class ..._Param>
2935
- struct __check_complete<_Rp (*)(_Param...)>
2936
- : private __check_complete<_Rp>
2937
- {
2938
- };
2939
-
2940
- template <class ..._Param>
2941
- struct __check_complete<void (*)(_Param...)>
2942
- {
2943
- };
2944
-
2945
- template <class _Rp, class ..._Param>
2946
- struct __check_complete<_Rp (_Param...)>
2947
- : private __check_complete<_Rp>
2948
- {
2949
- };
2950
-
2951
- template <class ..._Param>
2952
- struct __check_complete<void (_Param...)>
2953
- {
2954
- };
2955
-
2956
- template <class _Rp, class _Class, class ..._Param>
2957
- struct __check_complete<_Rp (_Class::*)(_Param...)>
2958
- : private __check_complete<_Class>
2959
- {
2960
- };
2961
-
2962
- template <class _Rp, class _Class, class ..._Param>
2963
- struct __check_complete<_Rp (_Class::*)(_Param...) const>
2964
- : private __check_complete<_Class>
2965
- {
2966
- };
2967
-
2968
- template <class _Rp, class _Class, class ..._Param>
2969
- struct __check_complete<_Rp (_Class::*)(_Param...) volatile>
2970
- : private __check_complete<_Class>
2971
- {
2972
- };
2973
-
2974
- template <class _Rp, class _Class, class ..._Param>
2975
- struct __check_complete<_Rp (_Class::*)(_Param...) const volatile>
2976
- : private __check_complete<_Class>
2977
- {
2978
- };
2979
-
2980
- #if __has_feature(cxx_reference_qualified_functions)
2981
-
2982
- template <class _Rp, class _Class, class ..._Param>
2983
- struct __check_complete<_Rp (_Class::*)(_Param...) &>
2984
- : private __check_complete<_Class>
2985
- {
2986
- };
2987
-
2988
- template <class _Rp, class _Class, class ..._Param>
2989
- struct __check_complete<_Rp (_Class::*)(_Param...) const&>
2990
- : private __check_complete<_Class>
2991
- {
2992
- };
2993
-
2994
- template <class _Rp, class _Class, class ..._Param>
2995
- struct __check_complete<_Rp (_Class::*)(_Param...) volatile&>
2996
- : private __check_complete<_Class>
2997
- {
2998
- };
2999
-
3000
- template <class _Rp, class _Class, class ..._Param>
3001
- struct __check_complete<_Rp (_Class::*)(_Param...) const volatile&>
3002
- : private __check_complete<_Class>
3003
- {
3004
- };
3005
-
3006
- template <class _Rp, class _Class, class ..._Param>
3007
- struct __check_complete<_Rp (_Class::*)(_Param...) &&>
3008
- : private __check_complete<_Class>
3009
- {
3010
- };
3011
-
3012
- template <class _Rp, class _Class, class ..._Param>
3013
- struct __check_complete<_Rp (_Class::*)(_Param...) const&&>
3014
- : private __check_complete<_Class>
3015
- {
3016
- };
3017
-
3018
- template <class _Rp, class _Class, class ..._Param>
3019
- struct __check_complete<_Rp (_Class::*)(_Param...) volatile&&>
3020
- : private __check_complete<_Class>
3021
- {
3022
- };
3023
-
3024
- template <class _Rp, class _Class, class ..._Param>
3025
- struct __check_complete<_Rp (_Class::*)(_Param...) const volatile&&>
3026
- : private __check_complete<_Class>
3027
- {
3028
- };
3029
-
3030
- #endif
3031
-
3032
- template <class _Rp, class _Class>
3033
- struct __check_complete<_Rp _Class::*>
3034
- : private __check_complete<_Class>
3035
- {
3036
- };
3037
-
3038
- // __invoke forward declarations
3039
-
3040
- // fall back - none of the bullets
3041
-
3042
- template <class ..._Args>
3043
- auto
3044
- __invoke(__any, _Args&& ...__args)
3045
- -> __nat;
3046
-
3047
- // bullets 1 and 2
3048
-
3049
- template <class _Fp, class _A0, class ..._Args,
3050
- class = typename enable_if
3051
- <
3052
- is_member_function_pointer<typename remove_reference<_Fp>::type>::value &&
3053
- is_base_of<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType,
3054
- typename remove_reference<_A0>::type>::value
3055
- >::type
3056
- >
3057
- _LIBCPP_INLINE_VISIBILITY
3058
- auto
3059
- __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
3060
- -> decltype((_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...));
3061
-
3062
- template <class _Fp, class _A0, class ..._Args,
3063
- class = typename enable_if
3064
- <
3065
- is_member_function_pointer<typename remove_reference<_Fp>::type>::value &&
3066
- !is_base_of<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType,
3067
- typename remove_reference<_A0>::type>::value
3068
- >::type
3069
- >
3070
- _LIBCPP_INLINE_VISIBILITY
3071
- auto
3072
- __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
3073
- -> decltype(((*_VSTD::forward<_A0>(__a0)).*__f)(_VSTD::forward<_Args>(__args)...));
3074
-
3075
- // bullets 3 and 4
3076
-
3077
- template <class _Fp, class _A0,
3078
- class = typename enable_if
3079
- <
3080
- is_member_object_pointer<typename remove_reference<_Fp>::type>::value &&
3081
- is_base_of<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType,
3082
- typename remove_reference<_A0>::type>::value
3083
- >::type
3084
- >
3085
- _LIBCPP_INLINE_VISIBILITY
3086
- auto
3087
- __invoke(_Fp&& __f, _A0&& __a0)
3088
- -> decltype(_VSTD::forward<_A0>(__a0).*__f);
3089
-
3090
- template <class _Fp, class _A0,
3091
- class = typename enable_if
3092
- <
3093
- is_member_object_pointer<typename remove_reference<_Fp>::type>::value &&
3094
- !is_base_of<typename __member_pointer_traits<typename remove_reference<_Fp>::type>::_ClassType,
3095
- typename remove_reference<_A0>::type>::value
3096
- >::type
3097
- >
3098
- _LIBCPP_INLINE_VISIBILITY
3099
- auto
3100
- __invoke(_Fp&& __f, _A0&& __a0)
3101
- -> decltype((*_VSTD::forward<_A0>(__a0)).*__f);
3102
-
3103
- // bullet 5
3104
-
3105
- template <class _Fp, class ..._Args>
3106
- _LIBCPP_INLINE_VISIBILITY
3107
- auto
3108
- __invoke(_Fp&& __f, _Args&& ...__args)
3109
- -> decltype(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...));
3110
-
3111
- // __invokable
3112
-
3113
- template <class _Fp, class ..._Args>
3114
- struct __invokable_imp
3115
- : private __check_complete<_Fp>
3116
- {
3117
- typedef decltype(
3118
- __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)
3119
- ) type;
3120
- static const bool value = !is_same<type, __nat>::value;
3121
- };
3122
-
3123
- template <class _Fp, class ..._Args>
3124
- struct __invokable
3125
- : public integral_constant<bool,
3126
- __invokable_imp<_Fp, _Args...>::value>
3127
- {
3128
- };
3129
-
3130
- // __invoke_of
3131
-
3132
- template <bool _Invokable, class _Fp, class ..._Args>
3133
- struct __invoke_of_imp // false
3134
- {
3135
- };
3136
-
3137
- template <class _Fp, class ..._Args>
3138
- struct __invoke_of_imp<true, _Fp, _Args...>
3139
- {
3140
- typedef typename __invokable_imp<_Fp, _Args...>::type type;
3141
- };
3142
-
3143
- template <class _Fp, class ..._Args>
3144
- struct __invoke_of
3145
- : public __invoke_of_imp<__invokable<_Fp, _Args...>::value, _Fp, _Args...>
3146
- {
3147
- };
3148
-
3149
- template <class _Fp, class ..._Args>
3150
- class _LIBCPP_TYPE_VIS_ONLY result_of<_Fp(_Args...)>
3151
- : public __invoke_of<_Fp, _Args...>
3152
- {
3153
- };
3154
-
3155
- #if _LIBCPP_STD_VER > 11
3156
- template <class _Tp> using result_of_t = typename result_of<_Tp>::type;
3157
- #endif
3158
-
3159
- #endif // _LIBCPP_HAS_NO_VARIADICS
3160
-
3161
- template <class _Tp>
3162
- inline _LIBCPP_INLINE_VISIBILITY
3163
- #ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE
3164
- typename enable_if
3165
- <
3166
- is_move_constructible<_Tp>::value &&
3167
- is_move_assignable<_Tp>::value
3168
- >::type
3169
- #else
3170
- void
3171
- #endif
3172
- swap(_Tp& __x, _Tp& __y) _NOEXCEPT_(is_nothrow_move_constructible<_Tp>::value &&
3173
- is_nothrow_move_assignable<_Tp>::value)
3174
- {
3175
- _Tp __t(_VSTD::move(__x));
3176
- __x = _VSTD::move(__y);
3177
- __y = _VSTD::move(__t);
3178
- }
3179
-
3180
- template <class _ForwardIterator1, class _ForwardIterator2>
3181
- inline _LIBCPP_INLINE_VISIBILITY
3182
- void
3183
- iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
3184
- // _NOEXCEPT_(_NOEXCEPT_(swap(*__a, *__b)))
3185
- _NOEXCEPT_(_NOEXCEPT_(swap(*_VSTD::declval<_ForwardIterator1>(),
3186
- *_VSTD::declval<_ForwardIterator2>())))
3187
- {
3188
- swap(*__a, *__b);
3189
- }
3190
-
3191
- // __swappable
3192
-
3193
- namespace __detail
3194
- {
3195
-
3196
- using _VSTD::swap;
3197
- __nat swap(__any, __any);
3198
-
3199
- template <class _Tp>
3200
- struct __swappable
3201
- {
3202
- typedef decltype(swap(_VSTD::declval<_Tp&>(), _VSTD::declval<_Tp&>())) type;
3203
- static const bool value = !is_same<type, __nat>::value;
3204
- };
3205
-
3206
- } // __detail
3207
-
3208
- template <class _Tp>
3209
- struct __is_swappable
3210
- : public integral_constant<bool, __detail::__swappable<_Tp>::value>
3211
- {
3212
- };
3213
-
3214
- #if __has_feature(cxx_noexcept)
3215
-
3216
- template <bool, class _Tp>
3217
- struct __is_nothrow_swappable_imp
3218
- : public integral_constant<bool, noexcept(swap(_VSTD::declval<_Tp&>(),
3219
- _VSTD::declval<_Tp&>()))>
3220
- {
3221
- };
3222
-
3223
- template <class _Tp>
3224
- struct __is_nothrow_swappable_imp<false, _Tp>
3225
- : public false_type
3226
- {
3227
- };
3228
-
3229
- template <class _Tp>
3230
- struct __is_nothrow_swappable
3231
- : public __is_nothrow_swappable_imp<__is_swappable<_Tp>::value, _Tp>
3232
- {
3233
- };
3234
-
3235
- #else // __has_feature(cxx_noexcept)
3236
-
3237
- template <class _Tp>
3238
- struct __is_nothrow_swappable
3239
- : public false_type
3240
- {
3241
- };
3242
-
3243
- #endif // __has_feature(cxx_noexcept)
3244
-
3245
- #ifdef _LIBCXX_UNDERLYING_TYPE
3246
-
3247
- template <class _Tp>
3248
- struct underlying_type
3249
- {
3250
- typedef _LIBCXX_UNDERLYING_TYPE(_Tp) type;
3251
- };
3252
-
3253
- #if _LIBCPP_STD_VER > 11
3254
- template <class _Tp> using underlying_type_t = typename underlying_type<_Tp>::type;
3255
- #endif
3256
-
3257
- #else // _LIBCXX_UNDERLYING_TYPE
3258
-
3259
- template <class _Tp, bool _Support = false>
3260
- struct underlying_type
3261
- {
3262
- static_assert(_Support, "The underyling_type trait requires compiler "
3263
- "support. Either no such support exists or "
3264
- "libc++ does not know how to use it.");
3265
- };
3266
-
3267
- #endif // _LIBCXX_UNDERLYING_TYPE
3268
-
3269
- #ifndef _LIBCPP_HAS_NO_ADVANCED_SFINAE
3270
-
3271
- template <class _Tp>
3272
- struct __has_operator_addressof_imp
3273
- {
3274
- template <class>
3275
- static auto __test(__any) -> false_type;
3276
- template <class _Up>
3277
- static auto __test(_Up* __u)
3278
- -> typename __select_2nd<decltype(__u->operator&()), true_type>::type;
3279
-
3280
- static const bool value = decltype(__test<_Tp>(nullptr))::value;
3281
- };
3282
-
3283
- template <class _Tp>
3284
- struct __has_operator_addressof
3285
- : public integral_constant<bool, __has_operator_addressof_imp<_Tp>::value>
3286
- {};
3287
-
3288
- #endif // _LIBCPP_HAS_NO_ADVANCED_SFINAE
3289
-
3290
- _LIBCPP_END_NAMESPACE_STD
3291
-
3292
- #endif // _LIBCPP_TYPE_TRAITS