@crossbind/bridge-tools 0.0.0-stage → 2.0.0-beta.69

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 (2740) hide show
  1. package/LICENSE +1707 -0
  2. package/README.md +42 -2
  3. package/dist/clang/include/__clang_cuda_builtin_vars.h +122 -0
  4. package/dist/clang/include/__clang_cuda_cmath.h +512 -0
  5. package/dist/clang/include/__clang_cuda_complex_builtins.h +236 -0
  6. package/dist/clang/include/__clang_cuda_device_functions.h +1572 -0
  7. package/dist/clang/include/__clang_cuda_intrinsics.h +975 -0
  8. package/dist/clang/include/__clang_cuda_libdevice_declares.h +468 -0
  9. package/dist/clang/include/__clang_cuda_math.h +353 -0
  10. package/dist/clang/include/__clang_cuda_math_forward_declares.h +289 -0
  11. package/dist/clang/include/__clang_cuda_runtime_wrapper.h +526 -0
  12. package/dist/clang/include/__clang_cuda_texture_intrinsics.h +1177 -0
  13. package/dist/clang/include/__clang_gpu_builtin_vars.h +62 -0
  14. package/dist/clang/include/__clang_gpu_device_functions.h +358 -0
  15. package/dist/clang/include/__clang_gpu_intrinsics.h +230 -0
  16. package/dist/clang/include/__clang_gpu_runtime_wrapper.h +28 -0
  17. package/dist/clang/include/__clang_hip_cmath.h +848 -0
  18. package/dist/clang/include/__clang_hip_libdevice_declares.h +238 -0
  19. package/dist/clang/include/__clang_hip_math.h +1405 -0
  20. package/dist/clang/include/__clang_hip_runtime_wrapper.h +153 -0
  21. package/dist/clang/include/__clang_hip_stdlib.h +43 -0
  22. package/dist/clang/include/__clang_spirv_builtins.h +214 -0
  23. package/dist/clang/include/__clang_spirv_libdevice_declares.h +170 -0
  24. package/dist/clang/include/__clang_spirv_math.h +719 -0
  25. package/dist/clang/include/__float_float.h +176 -0
  26. package/dist/clang/include/__float_header_macro.h +12 -0
  27. package/dist/clang/include/__float_infinity_nan.h +20 -0
  28. package/dist/clang/include/__stdarg___gnuc_va_list.h +13 -0
  29. package/dist/clang/include/__stdarg___va_copy.h +12 -0
  30. package/dist/clang/include/__stdarg_header_macro.h +12 -0
  31. package/dist/clang/include/__stdarg_va_arg.h +22 -0
  32. package/dist/clang/include/__stdarg_va_copy.h +12 -0
  33. package/dist/clang/include/__stdarg_va_list.h +13 -0
  34. package/dist/clang/include/__stddef_header_macro.h +12 -0
  35. package/dist/clang/include/__stddef_max_align_t.h +27 -0
  36. package/dist/clang/include/__stddef_null.h +29 -0
  37. package/dist/clang/include/__stddef_nullptr_t.h +29 -0
  38. package/dist/clang/include/__stddef_offsetof.h +17 -0
  39. package/dist/clang/include/__stddef_ptrdiff_t.h +20 -0
  40. package/dist/clang/include/__stddef_rsize_t.h +20 -0
  41. package/dist/clang/include/__stddef_size_t.h +20 -0
  42. package/dist/clang/include/__stddef_unreachable.h +21 -0
  43. package/dist/clang/include/__stddef_wchar_t.h +28 -0
  44. package/dist/clang/include/__stddef_wint_t.h +15 -0
  45. package/dist/clang/include/__wmmintrin_aes.h +140 -0
  46. package/dist/clang/include/__wmmintrin_pclmul.h +48 -0
  47. package/dist/clang/include/adcintrin.h +165 -0
  48. package/dist/clang/include/adxintrin.h +107 -0
  49. package/dist/clang/include/altivec.h +19453 -0
  50. package/dist/clang/include/amdgpuintrin.h +162 -0
  51. package/dist/clang/include/amdhsa_abi.h +83 -0
  52. package/dist/clang/include/ammintrin.h +183 -0
  53. package/dist/clang/include/amo.h +220 -0
  54. package/dist/clang/include/amxavx512intrin.h +622 -0
  55. package/dist/clang/include/amxcomplexintrin.h +167 -0
  56. package/dist/clang/include/amxfp16intrin.h +93 -0
  57. package/dist/clang/include/amxfp8intrin.h +230 -0
  58. package/dist/clang/include/amxintrin.h +492 -0
  59. package/dist/clang/include/amxmovrsintrin.h +48 -0
  60. package/dist/clang/include/andes_vector.h +21 -0
  61. package/dist/clang/include/arm64_neon.h +21 -0
  62. package/dist/clang/include/arm64intr.h +45 -0
  63. package/dist/clang/include/arm_acle.h +888 -0
  64. package/dist/clang/include/arm_cmse.h +217 -0
  65. package/dist/clang/include/arm_neon_sve_bridge.h +195 -0
  66. package/dist/clang/include/armintr.h +31 -0
  67. package/dist/clang/include/avx10_2_512bf16intrin.h +568 -0
  68. package/dist/clang/include/avx10_2_512convertintrin.h +322 -0
  69. package/dist/clang/include/avx10_2_512minmaxintrin.h +127 -0
  70. package/dist/clang/include/avx10_2_512niintrin.h +314 -0
  71. package/dist/clang/include/avx10_2_512satcvtdsintrin.h +307 -0
  72. package/dist/clang/include/avx10_2_512satcvtintrin.h +301 -0
  73. package/dist/clang/include/avx10_2bf16intrin.h +1094 -0
  74. package/dist/clang/include/avx10_2convertintrin.h +3257 -0
  75. package/dist/clang/include/avx10_2copyintrin.h +66 -0
  76. package/dist/clang/include/avx10_2minmaxintrin.h +232 -0
  77. package/dist/clang/include/avx10_2niintrin.h +409 -0
  78. package/dist/clang/include/avx10_2satcvtdsintrin.h +443 -0
  79. package/dist/clang/include/avx10_2satcvtintrin.h +312 -0
  80. package/dist/clang/include/avx10v2aux_512intrin.h +1171 -0
  81. package/dist/clang/include/avx10v2auxintrin.h +2403 -0
  82. package/dist/clang/include/avx2intrin.h +5190 -0
  83. package/dist/clang/include/avx512bf16intrin.h +292 -0
  84. package/dist/clang/include/avx512bitalgintrin.h +75 -0
  85. package/dist/clang/include/avx512bmmintrin.h +174 -0
  86. package/dist/clang/include/avx512bmmvlintrin.h +245 -0
  87. package/dist/clang/include/avx512bwintrin.h +1885 -0
  88. package/dist/clang/include/avx512cdintrin.h +112 -0
  89. package/dist/clang/include/avx512dqintrin.h +1350 -0
  90. package/dist/clang/include/avx512fintrin.h +9351 -0
  91. package/dist/clang/include/avx512fp16intrin.h +3349 -0
  92. package/dist/clang/include/avx512ifmaintrin.h +68 -0
  93. package/dist/clang/include/avx512ifmavlintrin.h +138 -0
  94. package/dist/clang/include/avx512vbmi2intrin.h +364 -0
  95. package/dist/clang/include/avx512vbmiintrin.h +98 -0
  96. package/dist/clang/include/avx512vbmivlintrin.h +179 -0
  97. package/dist/clang/include/avx512vlbf16intrin.h +527 -0
  98. package/dist/clang/include/avx512vlbitalgintrin.h +135 -0
  99. package/dist/clang/include/avx512vlbwintrin.h +3052 -0
  100. package/dist/clang/include/avx512vlcdintrin.h +202 -0
  101. package/dist/clang/include/avx512vldqintrin.h +1156 -0
  102. package/dist/clang/include/avx512vlfp16intrin.h +2090 -0
  103. package/dist/clang/include/avx512vlintrin.h +8067 -0
  104. package/dist/clang/include/avx512vlvbmi2intrin.h +702 -0
  105. package/dist/clang/include/avx512vlvnniintrin.h +308 -0
  106. package/dist/clang/include/avx512vlvp2intersectintrin.h +123 -0
  107. package/dist/clang/include/avx512vnniintrin.h +113 -0
  108. package/dist/clang/include/avx512vp2intersectintrin.h +77 -0
  109. package/dist/clang/include/avx512vpopcntdqintrin.h +62 -0
  110. package/dist/clang/include/avx512vpopcntdqvlintrin.h +105 -0
  111. package/dist/clang/include/avxifmaintrin.h +193 -0
  112. package/dist/clang/include/avxintrin.h +5060 -0
  113. package/dist/clang/include/avxneconvertintrin.h +484 -0
  114. package/dist/clang/include/avxvnniint16intrin.h +451 -0
  115. package/dist/clang/include/avxvnniint8intrin.h +454 -0
  116. package/dist/clang/include/avxvnniintrin.h +238 -0
  117. package/dist/clang/include/bmi2intrin.h +253 -0
  118. package/dist/clang/include/bmiintrin.h +604 -0
  119. package/dist/clang/include/builtins.h +19 -0
  120. package/dist/clang/include/cet.h +66 -0
  121. package/dist/clang/include/cetintrin.h +115 -0
  122. package/dist/clang/include/cldemoteintrin.h +36 -0
  123. package/dist/clang/include/clflushoptintrin.h +36 -0
  124. package/dist/clang/include/clwbintrin.h +38 -0
  125. package/dist/clang/include/clzerointrin.h +38 -0
  126. package/dist/clang/include/cmpccxaddintrin.h +70 -0
  127. package/dist/clang/include/cpuid.h +454 -0
  128. package/dist/clang/include/crc32intrin.h +102 -0
  129. package/dist/clang/include/cuda_wrappers/__utility/declval.h +28 -0
  130. package/dist/clang/include/cuda_wrappers/algorithm +116 -0
  131. package/dist/clang/include/cuda_wrappers/bits/basic_string.h +9 -0
  132. package/dist/clang/include/cuda_wrappers/bits/basic_string.tcc +9 -0
  133. package/dist/clang/include/cuda_wrappers/bits/c++config.h +61 -0
  134. package/dist/clang/include/cuda_wrappers/bits/shared_ptr_base.h +9 -0
  135. package/dist/clang/include/cuda_wrappers/cmath +44 -0
  136. package/dist/clang/include/cuda_wrappers/complex +90 -0
  137. package/dist/clang/include/cuda_wrappers/new +108 -0
  138. package/dist/clang/include/emmintrin.h +4949 -0
  139. package/dist/clang/include/endian.h +91 -0
  140. package/dist/clang/include/enqcmdintrin.h +63 -0
  141. package/dist/clang/include/f16cintrin.h +176 -0
  142. package/dist/clang/include/float.h +48 -0
  143. package/dist/clang/include/fma4intrin.h +220 -0
  144. package/dist/clang/include/fmaintrin.h +826 -0
  145. package/dist/clang/include/fxsrintrin.h +91 -0
  146. package/dist/clang/include/gfniintrin.h +238 -0
  147. package/dist/clang/include/gpuintrin.h +348 -0
  148. package/dist/clang/include/hexagon_circ_brev_intrinsics.h +298 -0
  149. package/dist/clang/include/hexagon_protos.h +8439 -0
  150. package/dist/clang/include/hexagon_types.h +2628 -0
  151. package/dist/clang/include/hip_wrappers/hip/device_functions.h +17 -0
  152. package/dist/clang/include/hip_wrappers/hip/hip_runtime.h +23 -0
  153. package/dist/clang/include/hlsl_alias_intrinsics_gen.inc +7782 -0
  154. package/dist/clang/include/hlsl_inline_intrinsics_gen.inc +937 -0
  155. package/dist/clang/include/hresetintrin.h +49 -0
  156. package/dist/clang/include/htmintrin.h +212 -0
  157. package/dist/clang/include/htmxlintrin.h +345 -0
  158. package/dist/clang/include/hvx_hexagon_protos.h +5421 -0
  159. package/dist/clang/include/ia32intrin.h +863 -0
  160. package/dist/clang/include/immintrin.h +600 -0
  161. package/dist/clang/include/intrin.h +503 -0
  162. package/dist/clang/include/intrin0.h +256 -0
  163. package/dist/clang/include/inttypes.h +101 -0
  164. package/dist/clang/include/invpcidintrin.h +23 -0
  165. package/dist/clang/include/iso646.h +31 -0
  166. package/dist/clang/include/keylockerintrin.h +518 -0
  167. package/dist/clang/include/larchintrin.h +262 -0
  168. package/dist/clang/include/lasxintrin.h +3999 -0
  169. package/dist/clang/include/limits.h +133 -0
  170. package/dist/clang/include/llvm_libc_wrappers/assert.h +32 -0
  171. package/dist/clang/include/llvm_libc_wrappers/ctype.h +29 -0
  172. package/dist/clang/include/llvm_libc_wrappers/inttypes.h +32 -0
  173. package/dist/clang/include/llvm_libc_wrappers/stdio.h +52 -0
  174. package/dist/clang/include/llvm_libc_wrappers/stdlib.h +32 -0
  175. package/dist/clang/include/llvm_libc_wrappers/string.h +29 -0
  176. package/dist/clang/include/llvm_libc_wrappers/time.h +28 -0
  177. package/dist/clang/include/llvm_offload_wrappers/__llvm_offload.h +31 -0
  178. package/dist/clang/include/llvm_offload_wrappers/__llvm_offload_device.h +10 -0
  179. package/dist/clang/include/llvm_offload_wrappers/__llvm_offload_host.h +15 -0
  180. package/dist/clang/include/lsxintrin.h +3752 -0
  181. package/dist/clang/include/lwpintrin.h +136 -0
  182. package/dist/clang/include/lzcntintrin.h +109 -0
  183. package/dist/clang/include/mm3dnow.h +22 -0
  184. package/dist/clang/include/mm_malloc.h +67 -0
  185. package/dist/clang/include/mmintrin.h +1541 -0
  186. package/dist/clang/include/module.modulemap +375 -0
  187. package/dist/clang/include/movdirintrin.h +49 -0
  188. package/dist/clang/include/movrs_avx10_2_512intrin.h +98 -0
  189. package/dist/clang/include/movrs_avx10_2intrin.h +174 -0
  190. package/dist/clang/include/movrsintrin.h +59 -0
  191. package/dist/clang/include/msa.h +573 -0
  192. package/dist/clang/include/mwaitxintrin.h +62 -0
  193. package/dist/clang/include/nmmintrin.h +20 -0
  194. package/dist/clang/include/nvptxintrin.h +208 -0
  195. package/dist/clang/include/opencl-c-base.h +774 -0
  196. package/dist/clang/include/opencl-c.h +18737 -0
  197. package/dist/clang/include/openmp_wrappers/__clang_openmp_device_functions.h +118 -0
  198. package/dist/clang/include/openmp_wrappers/cmath +132 -0
  199. package/dist/clang/include/openmp_wrappers/complex +61 -0
  200. package/dist/clang/include/openmp_wrappers/complex.h +41 -0
  201. package/dist/clang/include/openmp_wrappers/complex_cmath.h +393 -0
  202. package/dist/clang/include/openmp_wrappers/math.h +71 -0
  203. package/dist/clang/include/openmp_wrappers/new +48 -0
  204. package/dist/clang/include/pconfigintrin.h +40 -0
  205. package/dist/clang/include/pkuintrin.h +34 -0
  206. package/dist/clang/include/pmmintrin.h +302 -0
  207. package/dist/clang/include/popcntintrin.h +59 -0
  208. package/dist/clang/include/ppc_wrappers/bmi2intrin.h +134 -0
  209. package/dist/clang/include/ppc_wrappers/bmiintrin.h +165 -0
  210. package/dist/clang/include/ppc_wrappers/emmintrin.h +2269 -0
  211. package/dist/clang/include/ppc_wrappers/immintrin.h +27 -0
  212. package/dist/clang/include/ppc_wrappers/mm_malloc.h +45 -0
  213. package/dist/clang/include/ppc_wrappers/mmintrin.h +1453 -0
  214. package/dist/clang/include/ppc_wrappers/nmmintrin.h +26 -0
  215. package/dist/clang/include/ppc_wrappers/pmmintrin.h +145 -0
  216. package/dist/clang/include/ppc_wrappers/smmintrin.h +683 -0
  217. package/dist/clang/include/ppc_wrappers/tmmintrin.h +453 -0
  218. package/dist/clang/include/ppc_wrappers/x86gprintrin.h +17 -0
  219. package/dist/clang/include/ppc_wrappers/x86intrin.h +28 -0
  220. package/dist/clang/include/ppc_wrappers/xmmintrin.h +1827 -0
  221. package/dist/clang/include/prfchiintrin.h +61 -0
  222. package/dist/clang/include/prfchwintrin.h +57 -0
  223. package/dist/clang/include/ptrauth.h +485 -0
  224. package/dist/clang/include/ptwriteintrin.h +37 -0
  225. package/dist/clang/include/raointintrin.h +203 -0
  226. package/dist/clang/include/rdpruintrin.h +57 -0
  227. package/dist/clang/include/rdseedintrin.h +105 -0
  228. package/dist/clang/include/riscv_bitmanip.h +202 -0
  229. package/dist/clang/include/riscv_corev_alu.h +130 -0
  230. package/dist/clang/include/riscv_crypto.h +178 -0
  231. package/dist/clang/include/riscv_mips.h +36 -0
  232. package/dist/clang/include/riscv_nds.h +92 -0
  233. package/dist/clang/include/riscv_ntlh.h +28 -0
  234. package/dist/clang/include/riscv_packed_simd.h +1685 -0
  235. package/dist/clang/include/rtmintrin.h +45 -0
  236. package/dist/clang/include/s390intrin.h +25 -0
  237. package/dist/clang/include/serializeintrin.h +30 -0
  238. package/dist/clang/include/sgxintrin.h +60 -0
  239. package/dist/clang/include/sha512intrin.h +200 -0
  240. package/dist/clang/include/shaintrin.h +190 -0
  241. package/dist/clang/include/sifive_vector.h +192 -0
  242. package/dist/clang/include/sm3intrin.h +238 -0
  243. package/dist/clang/include/sm4evexintrin.h +32 -0
  244. package/dist/clang/include/sm4intrin.h +269 -0
  245. package/dist/clang/include/smmintrin.h +2352 -0
  246. package/dist/clang/include/spirvintrin.h +167 -0
  247. package/dist/clang/include/stdalign.h +24 -0
  248. package/dist/clang/include/stdarg.h +75 -0
  249. package/dist/clang/include/stdatomic.h +204 -0
  250. package/dist/clang/include/stdbool.h +39 -0
  251. package/dist/clang/include/stdckdint.h +42 -0
  252. package/dist/clang/include/stdcountof.h +15 -0
  253. package/dist/clang/include/stddef.h +139 -0
  254. package/dist/clang/include/stddefer.h +19 -0
  255. package/dist/clang/include/stdint.h +835 -0
  256. package/dist/clang/include/stdnoreturn.h +35 -0
  257. package/dist/clang/include/tbmintrin.h +128 -0
  258. package/dist/clang/include/tgmath.h +1368 -0
  259. package/dist/clang/include/tmmintrin.h +779 -0
  260. package/dist/clang/include/tsxldtrkintrin.h +56 -0
  261. package/dist/clang/include/uintrintrin.h +157 -0
  262. package/dist/clang/include/unwind.h +332 -0
  263. package/dist/clang/include/usermsrintrin.h +51 -0
  264. package/dist/clang/include/vadefs.h +51 -0
  265. package/dist/clang/include/vaesintrin.h +86 -0
  266. package/dist/clang/include/varargs.h +16 -0
  267. package/dist/clang/include/vecintrin.h +12868 -0
  268. package/dist/clang/include/velintrin.h +71 -0
  269. package/dist/clang/include/velintrin_approx.h +120 -0
  270. package/dist/clang/include/velintrin_gen.h +1257 -0
  271. package/dist/clang/include/vpclmulqdqintrin.h +30 -0
  272. package/dist/clang/include/waitpkgintrin.h +42 -0
  273. package/dist/clang/include/wasm_simd128.h +2160 -0
  274. package/dist/clang/include/wbnoinvdintrin.h +24 -0
  275. package/dist/clang/include/wmmintrin.h +23 -0
  276. package/dist/clang/include/x86gprintrin.h +49 -0
  277. package/dist/clang/include/x86intrin.h +35 -0
  278. package/dist/clang/include/xmmintrin.h +3155 -0
  279. package/dist/clang/include/xopintrin.h +780 -0
  280. package/dist/clang/include/xsavecintrin.h +84 -0
  281. package/dist/clang/include/xsaveintrin.h +63 -0
  282. package/dist/clang/include/xsaveoptintrin.h +34 -0
  283. package/dist/clang/include/xsavesintrin.h +44 -0
  284. package/dist/clang/include/xtestintrin.h +27 -0
  285. package/dist/clang/include/yvals_core.h +25 -0
  286. package/dist/clang/include/zos_wrappers/builtins.h +18 -0
  287. package/dist/clang/include/zos_wrappers/grp.h +19 -0
  288. package/dist/clang/include/zos_wrappers/locale.h +19 -0
  289. package/dist/clang/include/zos_wrappers/math.h +31 -0
  290. package/dist/clang/include/zos_wrappers/poll.h +19 -0
  291. package/dist/clang/include/zos_wrappers/stdlib.h +20 -0
  292. package/dist/clang/include/zos_wrappers/string.h +19 -0
  293. package/dist/clang/include/zos_wrappers/time.h +19 -0
  294. package/dist/clang/include/zos_wrappers/variant.h +19 -0
  295. package/dist/emscripten/include/AL/al.h +172 -0
  296. package/dist/emscripten/include/AL/alc.h +84 -0
  297. package/dist/emscripten/include/AL/alext.h +61 -0
  298. package/dist/emscripten/include/EGL/egl.h +361 -0
  299. package/dist/emscripten/include/EGL/eglext.h +1427 -0
  300. package/dist/emscripten/include/EGL/eglplatform.h +182 -0
  301. package/dist/emscripten/include/GL/freeglut_std.h +628 -0
  302. package/dist/emscripten/include/GL/gl.h +2241 -0
  303. package/dist/emscripten/include/GL/glew.h +841 -0
  304. package/dist/emscripten/include/GL/glext.h +12847 -0
  305. package/dist/emscripten/include/GL/glfw.h +538 -0
  306. package/dist/emscripten/include/GL/glu.h +353 -0
  307. package/dist/emscripten/include/GL/glut.h +21 -0
  308. package/dist/emscripten/include/GLES/gl.h +590 -0
  309. package/dist/emscripten/include/GLES/glext.h +973 -0
  310. package/dist/emscripten/include/GLES/glplatform.h +38 -0
  311. package/dist/emscripten/include/GLES2/gl2.h +675 -0
  312. package/dist/emscripten/include/GLES2/gl2ext.h +3911 -0
  313. package/dist/emscripten/include/GLES2/gl2platform.h +38 -0
  314. package/dist/emscripten/include/GLES3/gl2ext.h +9 -0
  315. package/dist/emscripten/include/GLES3/gl3.h +1211 -0
  316. package/dist/emscripten/include/GLES3/gl31.h +1526 -0
  317. package/dist/emscripten/include/GLES3/gl32.h +1827 -0
  318. package/dist/emscripten/include/GLES3/gl3platform.h +38 -0
  319. package/dist/emscripten/include/GLFW/glfw3.h +5912 -0
  320. package/dist/emscripten/include/KHR/khrplatform.h +290 -0
  321. package/dist/emscripten/include/SDL/COPYING +24 -0
  322. package/dist/emscripten/include/SDL/SDL.h +162 -0
  323. package/dist/emscripten/include/SDL/SDL_assert.h +241 -0
  324. package/dist/emscripten/include/SDL/SDL_atomic.h +318 -0
  325. package/dist/emscripten/include/SDL/SDL_audio.h +509 -0
  326. package/dist/emscripten/include/SDL/SDL_blendmode.h +60 -0
  327. package/dist/emscripten/include/SDL/SDL_clipboard.h +75 -0
  328. package/dist/emscripten/include/SDL/SDL_compat.h +365 -0
  329. package/dist/emscripten/include/SDL/SDL_config.h +50 -0
  330. package/dist/emscripten/include/SDL/SDL_config.h.in +297 -0
  331. package/dist/emscripten/include/SDL/SDL_config_android.h +133 -0
  332. package/dist/emscripten/include/SDL/SDL_config_emscripten.h +76 -0
  333. package/dist/emscripten/include/SDL/SDL_config_iphoneos.h +148 -0
  334. package/dist/emscripten/include/SDL/SDL_config_macosx.h +172 -0
  335. package/dist/emscripten/include/SDL/SDL_config_minimal.h +74 -0
  336. package/dist/emscripten/include/SDL/SDL_config_nintendods.h +129 -0
  337. package/dist/emscripten/include/SDL/SDL_config_pandora.h +125 -0
  338. package/dist/emscripten/include/SDL/SDL_config_windows.h +207 -0
  339. package/dist/emscripten/include/SDL/SDL_config_wiz.h +119 -0
  340. package/dist/emscripten/include/SDL/SDL_copying.h +20 -0
  341. package/dist/emscripten/include/SDL/SDL_cpuinfo.h +154 -0
  342. package/dist/emscripten/include/SDL/SDL_endian.h +248 -0
  343. package/dist/emscripten/include/SDL/SDL_error.h +77 -0
  344. package/dist/emscripten/include/SDL/SDL_events.h +664 -0
  345. package/dist/emscripten/include/SDL/SDL_gesture.h +91 -0
  346. package/dist/emscripten/include/SDL/SDL_gfxPrimitives.h +246 -0
  347. package/dist/emscripten/include/SDL/SDL_haptic.h +1200 -0
  348. package/dist/emscripten/include/SDL/SDL_hints.h +206 -0
  349. package/dist/emscripten/include/SDL/SDL_image.h +138 -0
  350. package/dist/emscripten/include/SDL/SDL_input.h +87 -0
  351. package/dist/emscripten/include/SDL/SDL_joystick.h +208 -0
  352. package/dist/emscripten/include/SDL/SDL_keyboard.h +169 -0
  353. package/dist/emscripten/include/SDL/SDL_keycode.h +344 -0
  354. package/dist/emscripten/include/SDL/SDL_loadso.h +85 -0
  355. package/dist/emscripten/include/SDL/SDL_log.h +211 -0
  356. package/dist/emscripten/include/SDL/SDL_main.h +98 -0
  357. package/dist/emscripten/include/SDL/SDL_mixer.h +634 -0
  358. package/dist/emscripten/include/SDL/SDL_mouse.h +213 -0
  359. package/dist/emscripten/include/SDL/SDL_mutex.h +248 -0
  360. package/dist/emscripten/include/SDL/SDL_name.h +11 -0
  361. package/dist/emscripten/include/SDL/SDL_opengl.h +11116 -0
  362. package/dist/emscripten/include/SDL/SDL_opengles.h +38 -0
  363. package/dist/emscripten/include/SDL/SDL_opengles2.h +38 -0
  364. package/dist/emscripten/include/SDL/SDL_pixels.h +426 -0
  365. package/dist/emscripten/include/SDL/SDL_platform.h +160 -0
  366. package/dist/emscripten/include/SDL/SDL_power.h +79 -0
  367. package/dist/emscripten/include/SDL/SDL_quit.h +58 -0
  368. package/dist/emscripten/include/SDL/SDL_rect.h +136 -0
  369. package/dist/emscripten/include/SDL/SDL_render.h +615 -0
  370. package/dist/emscripten/include/SDL/SDL_revision.h +2 -0
  371. package/dist/emscripten/include/SDL/SDL_rotozoom.h +123 -0
  372. package/dist/emscripten/include/SDL/SDL_rwops.h +220 -0
  373. package/dist/emscripten/include/SDL/SDL_scancode.h +398 -0
  374. package/dist/emscripten/include/SDL/SDL_shape.h +147 -0
  375. package/dist/emscripten/include/SDL/SDL_stdinc.h +764 -0
  376. package/dist/emscripten/include/SDL/SDL_surface.h +499 -0
  377. package/dist/emscripten/include/SDL/SDL_syswm.h +241 -0
  378. package/dist/emscripten/include/SDL/SDL_thread.h +182 -0
  379. package/dist/emscripten/include/SDL/SDL_timer.h +108 -0
  380. package/dist/emscripten/include/SDL/SDL_touch.h +92 -0
  381. package/dist/emscripten/include/SDL/SDL_ttf.h +249 -0
  382. package/dist/emscripten/include/SDL/SDL_types.h +29 -0
  383. package/dist/emscripten/include/SDL/SDL_version.h +166 -0
  384. package/dist/emscripten/include/SDL/SDL_video.h +820 -0
  385. package/dist/emscripten/include/SDL/begin_code.h +135 -0
  386. package/dist/emscripten/include/SDL/close_code.h +37 -0
  387. package/dist/emscripten/include/X11/X.h +717 -0
  388. package/dist/emscripten/include/X11/XKBlib.h +1149 -0
  389. package/dist/emscripten/include/X11/Xatom.h +79 -0
  390. package/dist/emscripten/include/X11/Xfuncproto.h +127 -0
  391. package/dist/emscripten/include/X11/Xfuncs.h +69 -0
  392. package/dist/emscripten/include/X11/Xlib.h +4023 -0
  393. package/dist/emscripten/include/X11/XlibConf.h +38 -0
  394. package/dist/emscripten/include/X11/Xlibint.h +1387 -0
  395. package/dist/emscripten/include/X11/Xmd.h +185 -0
  396. package/dist/emscripten/include/X11/Xosdefs.h +116 -0
  397. package/dist/emscripten/include/X11/Xproto.h +2157 -0
  398. package/dist/emscripten/include/X11/Xprotostr.h +77 -0
  399. package/dist/emscripten/include/X11/Xutil.h +826 -0
  400. package/dist/emscripten/include/X11/cursorfont.h +111 -0
  401. package/dist/emscripten/include/X11/extensions/XKB.h +786 -0
  402. package/dist/emscripten/include/X11/extensions/XKBstr.h +613 -0
  403. package/dist/emscripten/include/X11/extensions/XShm.h +135 -0
  404. package/dist/emscripten/include/X11/extensions/Xext.h +53 -0
  405. package/dist/emscripten/include/X11/extensions/extutil.h +190 -0
  406. package/dist/emscripten/include/X11/extensions/shm.h +44 -0
  407. package/dist/emscripten/include/X11/keysym.h +73 -0
  408. package/dist/emscripten/include/X11/keysymdef.h +2389 -0
  409. package/dist/emscripten/include/__libunwind_config.h +224 -0
  410. package/dist/emscripten/include/alloca.h +19 -0
  411. package/dist/emscripten/include/ar.h +25 -0
  412. package/dist/emscripten/include/arpa/ftp.h +35 -0
  413. package/dist/emscripten/include/arpa/inet.h +31 -0
  414. package/dist/emscripten/include/arpa/nameser.h +526 -0
  415. package/dist/emscripten/include/arpa/nameser_compat.h +2 -0
  416. package/dist/emscripten/include/arpa/telnet.h +251 -0
  417. package/dist/emscripten/include/arpa/tftp.h +31 -0
  418. package/dist/emscripten/include/assert.h +23 -0
  419. package/dist/emscripten/include/bits/alltypes.h +481 -0
  420. package/dist/emscripten/include/bits/dirent.h +11 -0
  421. package/dist/emscripten/include/bits/errno.h +144 -0
  422. package/dist/emscripten/include/bits/fcntl.h +46 -0
  423. package/dist/emscripten/include/bits/fenv.h +14 -0
  424. package/dist/emscripten/include/bits/float.h +17 -0
  425. package/dist/emscripten/include/bits/hwcap.h +0 -0
  426. package/dist/emscripten/include/bits/ioctl.h +115 -0
  427. package/dist/emscripten/include/bits/ioctl_fix.h +0 -0
  428. package/dist/emscripten/include/bits/ipc.h +11 -0
  429. package/dist/emscripten/include/bits/ipcstat.h +1 -0
  430. package/dist/emscripten/include/bits/limits.h +1 -0
  431. package/dist/emscripten/include/bits/link.h +1 -0
  432. package/dist/emscripten/include/bits/mman.h +4 -0
  433. package/dist/emscripten/include/bits/msg.h +12 -0
  434. package/dist/emscripten/include/bits/poll.h +0 -0
  435. package/dist/emscripten/include/bits/reg.h +0 -0
  436. package/dist/emscripten/include/bits/resource.h +0 -0
  437. package/dist/emscripten/include/bits/sem.h +14 -0
  438. package/dist/emscripten/include/bits/setjmp.h +2 -0
  439. package/dist/emscripten/include/bits/shm.h +24 -0
  440. package/dist/emscripten/include/bits/signal.h +143 -0
  441. package/dist/emscripten/include/bits/socket.h +0 -0
  442. package/dist/emscripten/include/bits/stat.h +33 -0
  443. package/dist/emscripten/include/bits/statfs.h +7 -0
  444. package/dist/emscripten/include/bits/syscall.h +89 -0
  445. package/dist/emscripten/include/bits/termios.h +166 -0
  446. package/dist/emscripten/include/bits/user.h +0 -0
  447. package/dist/emscripten/include/byteswap.h +26 -0
  448. package/dist/emscripten/include/c++/v1/__algorithm/adjacent_find.h +60 -0
  449. package/dist/emscripten/include/c++/v1/__algorithm/all_of.h +48 -0
  450. package/dist/emscripten/include/c++/v1/__algorithm/any_of.h +42 -0
  451. package/dist/emscripten/include/c++/v1/__algorithm/binary_search.h +38 -0
  452. package/dist/emscripten/include/c++/v1/__algorithm/clamp.h +44 -0
  453. package/dist/emscripten/include/c++/v1/__algorithm/comp.h +57 -0
  454. package/dist/emscripten/include/c++/v1/__algorithm/comp_ref_type.h +67 -0
  455. package/dist/emscripten/include/c++/v1/__algorithm/copy.h +135 -0
  456. package/dist/emscripten/include/c++/v1/__algorithm/copy_backward.h +255 -0
  457. package/dist/emscripten/include/c++/v1/__algorithm/copy_if.h +50 -0
  458. package/dist/emscripten/include/c++/v1/__algorithm/copy_move_common.h +113 -0
  459. package/dist/emscripten/include/c++/v1/__algorithm/copy_n.h +94 -0
  460. package/dist/emscripten/include/c++/v1/__algorithm/count.h +95 -0
  461. package/dist/emscripten/include/c++/v1/__algorithm/count_if.h +46 -0
  462. package/dist/emscripten/include/c++/v1/__algorithm/equal.h +280 -0
  463. package/dist/emscripten/include/c++/v1/__algorithm/equal_range.h +81 -0
  464. package/dist/emscripten/include/c++/v1/__algorithm/fill.h +63 -0
  465. package/dist/emscripten/include/c++/v1/__algorithm/fill_n.h +75 -0
  466. package/dist/emscripten/include/c++/v1/__algorithm/find.h +241 -0
  467. package/dist/emscripten/include/c++/v1/__algorithm/find_end.h +223 -0
  468. package/dist/emscripten/include/c++/v1/__algorithm/find_first_of.h +54 -0
  469. package/dist/emscripten/include/c++/v1/__algorithm/find_if.h +32 -0
  470. package/dist/emscripten/include/c++/v1/__algorithm/find_if_not.h +32 -0
  471. package/dist/emscripten/include/c++/v1/__algorithm/find_segment_if.h +62 -0
  472. package/dist/emscripten/include/c++/v1/__algorithm/for_each.h +59 -0
  473. package/dist/emscripten/include/c++/v1/__algorithm/for_each_n.h +75 -0
  474. package/dist/emscripten/include/c++/v1/__algorithm/for_each_n_segment.h +63 -0
  475. package/dist/emscripten/include/c++/v1/__algorithm/for_each_segment.h +79 -0
  476. package/dist/emscripten/include/c++/v1/__algorithm/generate.h +31 -0
  477. package/dist/emscripten/include/c++/v1/__algorithm/generate_n.h +46 -0
  478. package/dist/emscripten/include/c++/v1/__algorithm/half_positive.h +37 -0
  479. package/dist/emscripten/include/c++/v1/__algorithm/in_found_result.h +54 -0
  480. package/dist/emscripten/include/c++/v1/__algorithm/in_fun_result.h +54 -0
  481. package/dist/emscripten/include/c++/v1/__algorithm/in_in_out_result.h +59 -0
  482. package/dist/emscripten/include/c++/v1/__algorithm/in_in_result.h +56 -0
  483. package/dist/emscripten/include/c++/v1/__algorithm/in_out_out_result.h +57 -0
  484. package/dist/emscripten/include/c++/v1/__algorithm/in_out_result.h +56 -0
  485. package/dist/emscripten/include/c++/v1/__algorithm/includes.h +78 -0
  486. package/dist/emscripten/include/c++/v1/__algorithm/inplace_merge.h +243 -0
  487. package/dist/emscripten/include/c++/v1/__algorithm/is_heap.h +37 -0
  488. package/dist/emscripten/include/c++/v1/__algorithm/is_heap_until.h +62 -0
  489. package/dist/emscripten/include/c++/v1/__algorithm/is_partitioned.h +37 -0
  490. package/dist/emscripten/include/c++/v1/__algorithm/is_permutation.h +309 -0
  491. package/dist/emscripten/include/c++/v1/__algorithm/is_sorted.h +37 -0
  492. package/dist/emscripten/include/c++/v1/__algorithm/is_sorted_until.h +50 -0
  493. package/dist/emscripten/include/c++/v1/__algorithm/iter_swap.h +31 -0
  494. package/dist/emscripten/include/c++/v1/__algorithm/iterator_operations.h +229 -0
  495. package/dist/emscripten/include/c++/v1/__algorithm/lexicographical_compare.h +129 -0
  496. package/dist/emscripten/include/c++/v1/__algorithm/lexicographical_compare_three_way.h +125 -0
  497. package/dist/emscripten/include/c++/v1/__algorithm/lower_bound.h +108 -0
  498. package/dist/emscripten/include/c++/v1/__algorithm/make_heap.h +72 -0
  499. package/dist/emscripten/include/c++/v1/__algorithm/make_projected.h +104 -0
  500. package/dist/emscripten/include/c++/v1/__algorithm/max.h +58 -0
  501. package/dist/emscripten/include/c++/v1/__algorithm/max_element.h +54 -0
  502. package/dist/emscripten/include/c++/v1/__algorithm/merge.h +68 -0
  503. package/dist/emscripten/include/c++/v1/__algorithm/min.h +58 -0
  504. package/dist/emscripten/include/c++/v1/__algorithm/min_element.h +71 -0
  505. package/dist/emscripten/include/c++/v1/__algorithm/min_max_result.h +56 -0
  506. package/dist/emscripten/include/c++/v1/__algorithm/minmax.h +59 -0
  507. package/dist/emscripten/include/c++/v1/__algorithm/minmax_element.h +100 -0
  508. package/dist/emscripten/include/c++/v1/__algorithm/mismatch.h +218 -0
  509. package/dist/emscripten/include/c++/v1/__algorithm/move.h +128 -0
  510. package/dist/emscripten/include/c++/v1/__algorithm/move_backward.h +134 -0
  511. package/dist/emscripten/include/c++/v1/__algorithm/next_permutation.h +75 -0
  512. package/dist/emscripten/include/c++/v1/__algorithm/none_of.h +32 -0
  513. package/dist/emscripten/include/c++/v1/__algorithm/nth_element.h +261 -0
  514. package/dist/emscripten/include/c++/v1/__algorithm/out_value_result.h +56 -0
  515. package/dist/emscripten/include/c++/v1/__algorithm/partial_sort.h +91 -0
  516. package/dist/emscripten/include/c++/v1/__algorithm/partial_sort_copy.h +106 -0
  517. package/dist/emscripten/include/c++/v1/__algorithm/partition.h +91 -0
  518. package/dist/emscripten/include/c++/v1/__algorithm/partition_copy.h +43 -0
  519. package/dist/emscripten/include/c++/v1/__algorithm/partition_point.h +44 -0
  520. package/dist/emscripten/include/c++/v1/__algorithm/pop_heap.h +81 -0
  521. package/dist/emscripten/include/c++/v1/__algorithm/prev_permutation.h +75 -0
  522. package/dist/emscripten/include/c++/v1/__algorithm/pstl.h +663 -0
  523. package/dist/emscripten/include/c++/v1/__algorithm/push_heap.h +84 -0
  524. package/dist/emscripten/include/c++/v1/__algorithm/radix_sort.h +431 -0
  525. package/dist/emscripten/include/c++/v1/__algorithm/ranges_adjacent_find.h +66 -0
  526. package/dist/emscripten/include/c++/v1/__algorithm/ranges_all_of.h +64 -0
  527. package/dist/emscripten/include/c++/v1/__algorithm/ranges_any_of.h +63 -0
  528. package/dist/emscripten/include/c++/v1/__algorithm/ranges_binary_search.h +71 -0
  529. package/dist/emscripten/include/c++/v1/__algorithm/ranges_clamp.h +64 -0
  530. package/dist/emscripten/include/c++/v1/__algorithm/ranges_contains.h +64 -0
  531. package/dist/emscripten/include/c++/v1/__algorithm/ranges_contains_subrange.h +95 -0
  532. package/dist/emscripten/include/c++/v1/__algorithm/ranges_copy.h +68 -0
  533. package/dist/emscripten/include/c++/v1/__algorithm/ranges_copy_backward.h +67 -0
  534. package/dist/emscripten/include/c++/v1/__algorithm/ranges_copy_if.h +76 -0
  535. package/dist/emscripten/include/c++/v1/__algorithm/ranges_copy_n.h +57 -0
  536. package/dist/emscripten/include/c++/v1/__algorithm/ranges_count.h +64 -0
  537. package/dist/emscripten/include/c++/v1/__algorithm/ranges_count_if.h +67 -0
  538. package/dist/emscripten/include/c++/v1/__algorithm/ranges_ends_with.h +200 -0
  539. package/dist/emscripten/include/c++/v1/__algorithm/ranges_equal.h +98 -0
  540. package/dist/emscripten/include/c++/v1/__algorithm/ranges_equal_range.h +76 -0
  541. package/dist/emscripten/include/c++/v1/__algorithm/ranges_fill.h +61 -0
  542. package/dist/emscripten/include/c++/v1/__algorithm/ranges_fill_n.h +49 -0
  543. package/dist/emscripten/include/c++/v1/__algorithm/ranges_find.h +78 -0
  544. package/dist/emscripten/include/c++/v1/__algorithm/ranges_find_end.h +101 -0
  545. package/dist/emscripten/include/c++/v1/__algorithm/ranges_find_first_of.h +104 -0
  546. package/dist/emscripten/include/c++/v1/__algorithm/ranges_find_if.h +73 -0
  547. package/dist/emscripten/include/c++/v1/__algorithm/ranges_find_if_not.h +67 -0
  548. package/dist/emscripten/include/c++/v1/__algorithm/ranges_find_last.h +170 -0
  549. package/dist/emscripten/include/c++/v1/__algorithm/ranges_fold.h +129 -0
  550. package/dist/emscripten/include/c++/v1/__algorithm/ranges_for_each.h +97 -0
  551. package/dist/emscripten/include/c++/v1/__algorithm/ranges_for_each_n.h +59 -0
  552. package/dist/emscripten/include/c++/v1/__algorithm/ranges_generate.h +69 -0
  553. package/dist/emscripten/include/c++/v1/__algorithm/ranges_generate_n.h +57 -0
  554. package/dist/emscripten/include/c++/v1/__algorithm/ranges_includes.h +94 -0
  555. package/dist/emscripten/include/c++/v1/__algorithm/ranges_inplace_merge.h +80 -0
  556. package/dist/emscripten/include/c++/v1/__algorithm/ranges_is_heap.h +77 -0
  557. package/dist/emscripten/include/c++/v1/__algorithm/ranges_is_heap_until.h +77 -0
  558. package/dist/emscripten/include/c++/v1/__algorithm/ranges_is_partitioned.h +84 -0
  559. package/dist/emscripten/include/c++/v1/__algorithm/ranges_is_permutation.h +105 -0
  560. package/dist/emscripten/include/c++/v1/__algorithm/ranges_is_sorted.h +65 -0
  561. package/dist/emscripten/include/c++/v1/__algorithm/ranges_is_sorted_until.h +80 -0
  562. package/dist/emscripten/include/c++/v1/__algorithm/ranges_iterator_concept.h +56 -0
  563. package/dist/emscripten/include/c++/v1/__algorithm/ranges_lexicographical_compare.h +107 -0
  564. package/dist/emscripten/include/c++/v1/__algorithm/ranges_lower_bound.h +71 -0
  565. package/dist/emscripten/include/c++/v1/__algorithm/ranges_make_heap.h +81 -0
  566. package/dist/emscripten/include/c++/v1/__algorithm/ranges_max.h +101 -0
  567. package/dist/emscripten/include/c++/v1/__algorithm/ranges_max_element.h +67 -0
  568. package/dist/emscripten/include/c++/v1/__algorithm/ranges_merge.h +134 -0
  569. package/dist/emscripten/include/c++/v1/__algorithm/ranges_min.h +93 -0
  570. package/dist/emscripten/include/c++/v1/__algorithm/ranges_min_element.h +66 -0
  571. package/dist/emscripten/include/c++/v1/__algorithm/ranges_minmax.h +174 -0
  572. package/dist/emscripten/include/c++/v1/__algorithm/ranges_minmax_element.h +76 -0
  573. package/dist/emscripten/include/c++/v1/__algorithm/ranges_mismatch.h +98 -0
  574. package/dist/emscripten/include/c++/v1/__algorithm/ranges_move.h +72 -0
  575. package/dist/emscripten/include/c++/v1/__algorithm/ranges_move_backward.h +74 -0
  576. package/dist/emscripten/include/c++/v1/__algorithm/ranges_next_permutation.h +74 -0
  577. package/dist/emscripten/include/c++/v1/__algorithm/ranges_none_of.h +73 -0
  578. package/dist/emscripten/include/c++/v1/__algorithm/ranges_nth_element.h +80 -0
  579. package/dist/emscripten/include/c++/v1/__algorithm/ranges_partial_sort.h +78 -0
  580. package/dist/emscripten/include/c++/v1/__algorithm/ranges_partial_sort_copy.h +110 -0
  581. package/dist/emscripten/include/c++/v1/__algorithm/ranges_partition.h +85 -0
  582. package/dist/emscripten/include/c++/v1/__algorithm/ranges_partition_copy.h +106 -0
  583. package/dist/emscripten/include/c++/v1/__algorithm/ranges_partition_point.h +89 -0
  584. package/dist/emscripten/include/c++/v1/__algorithm/ranges_pop_heap.h +82 -0
  585. package/dist/emscripten/include/c++/v1/__algorithm/ranges_prev_permutation.h +74 -0
  586. package/dist/emscripten/include/c++/v1/__algorithm/ranges_push_heap.h +81 -0
  587. package/dist/emscripten/include/c++/v1/__algorithm/ranges_remove.h +66 -0
  588. package/dist/emscripten/include/c++/v1/__algorithm/ranges_remove_copy.h +77 -0
  589. package/dist/emscripten/include/c++/v1/__algorithm/ranges_remove_copy_if.h +91 -0
  590. package/dist/emscripten/include/c++/v1/__algorithm/ranges_remove_if.h +87 -0
  591. package/dist/emscripten/include/c++/v1/__algorithm/ranges_replace.h +66 -0
  592. package/dist/emscripten/include/c++/v1/__algorithm/ranges_replace_copy.h +89 -0
  593. package/dist/emscripten/include/c++/v1/__algorithm/ranges_replace_copy_if.h +94 -0
  594. package/dist/emscripten/include/c++/v1/__algorithm/ranges_replace_if.h +79 -0
  595. package/dist/emscripten/include/c++/v1/__algorithm/ranges_reverse.h +77 -0
  596. package/dist/emscripten/include/c++/v1/__algorithm/ranges_reverse_copy.h +68 -0
  597. package/dist/emscripten/include/c++/v1/__algorithm/ranges_rotate.h +67 -0
  598. package/dist/emscripten/include/c++/v1/__algorithm/ranges_rotate_copy.h +66 -0
  599. package/dist/emscripten/include/c++/v1/__algorithm/ranges_sample.h +70 -0
  600. package/dist/emscripten/include/c++/v1/__algorithm/ranges_search.h +132 -0
  601. package/dist/emscripten/include/c++/v1/__algorithm/ranges_search_n.h +114 -0
  602. package/dist/emscripten/include/c++/v1/__algorithm/ranges_set_difference.h +104 -0
  603. package/dist/emscripten/include/c++/v1/__algorithm/ranges_set_intersection.h +110 -0
  604. package/dist/emscripten/include/c++/v1/__algorithm/ranges_set_symmetric_difference.h +109 -0
  605. package/dist/emscripten/include/c++/v1/__algorithm/ranges_set_union.h +110 -0
  606. package/dist/emscripten/include/c++/v1/__algorithm/ranges_shuffle.h +68 -0
  607. package/dist/emscripten/include/c++/v1/__algorithm/ranges_sort.h +80 -0
  608. package/dist/emscripten/include/c++/v1/__algorithm/ranges_sort_heap.h +81 -0
  609. package/dist/emscripten/include/c++/v1/__algorithm/ranges_stable_partition.h +89 -0
  610. package/dist/emscripten/include/c++/v1/__algorithm/ranges_stable_sort.h +80 -0
  611. package/dist/emscripten/include/c++/v1/__algorithm/ranges_starts_with.h +93 -0
  612. package/dist/emscripten/include/c++/v1/__algorithm/ranges_swap_ranges.h +68 -0
  613. package/dist/emscripten/include/c++/v1/__algorithm/ranges_transform.h +175 -0
  614. package/dist/emscripten/include/c++/v1/__algorithm/ranges_unique.h +78 -0
  615. package/dist/emscripten/include/c++/v1/__algorithm/ranges_unique_copy.h +116 -0
  616. package/dist/emscripten/include/c++/v1/__algorithm/ranges_upper_bound.h +72 -0
  617. package/dist/emscripten/include/c++/v1/__algorithm/remove.h +46 -0
  618. package/dist/emscripten/include/c++/v1/__algorithm/remove_copy.h +34 -0
  619. package/dist/emscripten/include/c++/v1/__algorithm/remove_copy_if.h +34 -0
  620. package/dist/emscripten/include/c++/v1/__algorithm/remove_if.h +45 -0
  621. package/dist/emscripten/include/c++/v1/__algorithm/replace.h +30 -0
  622. package/dist/emscripten/include/c++/v1/__algorithm/replace_copy.h +37 -0
  623. package/dist/emscripten/include/c++/v1/__algorithm/replace_copy_if.h +37 -0
  624. package/dist/emscripten/include/c++/v1/__algorithm/replace_if.h +30 -0
  625. package/dist/emscripten/include/c++/v1/__algorithm/reverse.h +62 -0
  626. package/dist/emscripten/include/c++/v1/__algorithm/reverse_copy.h +30 -0
  627. package/dist/emscripten/include/c++/v1/__algorithm/rotate.h +226 -0
  628. package/dist/emscripten/include/c++/v1/__algorithm/rotate_copy.h +29 -0
  629. package/dist/emscripten/include/c++/v1/__algorithm/sample.h +123 -0
  630. package/dist/emscripten/include/c++/v1/__algorithm/search.h +192 -0
  631. package/dist/emscripten/include/c++/v1/__algorithm/search_n.h +168 -0
  632. package/dist/emscripten/include/c++/v1/__algorithm/set_difference.h +76 -0
  633. package/dist/emscripten/include/c++/v1/__algorithm/set_intersection.h +218 -0
  634. package/dist/emscripten/include/c++/v1/__algorithm/set_symmetric_difference.h +108 -0
  635. package/dist/emscripten/include/c++/v1/__algorithm/set_union.h +104 -0
  636. package/dist/emscripten/include/c++/v1/__algorithm/shift_left.h +59 -0
  637. package/dist/emscripten/include/c++/v1/__algorithm/shift_right.h +105 -0
  638. package/dist/emscripten/include/c++/v1/__algorithm/shuffle.h +167 -0
  639. package/dist/emscripten/include/c++/v1/__algorithm/sift_down.h +119 -0
  640. package/dist/emscripten/include/c++/v1/__algorithm/simd_utils.h +193 -0
  641. package/dist/emscripten/include/c++/v1/__algorithm/sort.h +958 -0
  642. package/dist/emscripten/include/c++/v1/__algorithm/sort_heap.h +63 -0
  643. package/dist/emscripten/include/c++/v1/__algorithm/specialized_algorithms.h +54 -0
  644. package/dist/emscripten/include/c++/v1/__algorithm/stable_partition.h +305 -0
  645. package/dist/emscripten/include/c++/v1/__algorithm/stable_sort.h +323 -0
  646. package/dist/emscripten/include/c++/v1/__algorithm/swap_ranges.h +224 -0
  647. package/dist/emscripten/include/c++/v1/__algorithm/three_way_comp_ref_type.h +74 -0
  648. package/dist/emscripten/include/c++/v1/__algorithm/transform.h +42 -0
  649. package/dist/emscripten/include/c++/v1/__algorithm/uniform_random_bit_generator_adaptor.h +58 -0
  650. package/dist/emscripten/include/c++/v1/__algorithm/unique.h +66 -0
  651. package/dist/emscripten/include/c++/v1/__algorithm/unique_copy.h +127 -0
  652. package/dist/emscripten/include/c++/v1/__algorithm/unwrap_iter.h +85 -0
  653. package/dist/emscripten/include/c++/v1/__algorithm/unwrap_range.h +99 -0
  654. package/dist/emscripten/include/c++/v1/__algorithm/upper_bound.h +71 -0
  655. package/dist/emscripten/include/c++/v1/__assert +118 -0
  656. package/dist/emscripten/include/c++/v1/__assertion_handler +64 -0
  657. package/dist/emscripten/include/c++/v1/__atomic/aliases.h +111 -0
  658. package/dist/emscripten/include/c++/v1/__atomic/atomic.h +806 -0
  659. package/dist/emscripten/include/c++/v1/__atomic/atomic_flag.h +169 -0
  660. package/dist/emscripten/include/c++/v1/__atomic/atomic_init.h +25 -0
  661. package/dist/emscripten/include/c++/v1/__atomic/atomic_lock_free.h +48 -0
  662. package/dist/emscripten/include/c++/v1/__atomic/atomic_ref.h +397 -0
  663. package/dist/emscripten/include/c++/v1/__atomic/atomic_sync.h +267 -0
  664. package/dist/emscripten/include/c++/v1/__atomic/atomic_sync_timed.h +144 -0
  665. package/dist/emscripten/include/c++/v1/__atomic/atomic_waitable_traits.h +103 -0
  666. package/dist/emscripten/include/c++/v1/__atomic/check_memory_order.h +34 -0
  667. package/dist/emscripten/include/c++/v1/__atomic/contention_t.h +56 -0
  668. package/dist/emscripten/include/c++/v1/__atomic/fence.h +28 -0
  669. package/dist/emscripten/include/c++/v1/__atomic/floating_point_helper.h +55 -0
  670. package/dist/emscripten/include/c++/v1/__atomic/is_always_lock_free.h +28 -0
  671. package/dist/emscripten/include/c++/v1/__atomic/kill_dependency.h +27 -0
  672. package/dist/emscripten/include/c++/v1/__atomic/memory_order.h +65 -0
  673. package/dist/emscripten/include/c++/v1/__atomic/support/c11.h +264 -0
  674. package/dist/emscripten/include/c++/v1/__atomic/support/gcc.h +265 -0
  675. package/dist/emscripten/include/c++/v1/__atomic/support.h +121 -0
  676. package/dist/emscripten/include/c++/v1/__atomic/to_gcc_order.h +54 -0
  677. package/dist/emscripten/include/c++/v1/__bit/bit_cast.h +44 -0
  678. package/dist/emscripten/include/c++/v1/__bit/bit_ceil.h +54 -0
  679. package/dist/emscripten/include/c++/v1/__bit/bit_floor.h +33 -0
  680. package/dist/emscripten/include/c++/v1/__bit/bit_log2.h +33 -0
  681. package/dist/emscripten/include/c++/v1/__bit/bit_width.h +33 -0
  682. package/dist/emscripten/include/c++/v1/__bit/blsr.h +34 -0
  683. package/dist/emscripten/include/c++/v1/__bit/byteswap.h +53 -0
  684. package/dist/emscripten/include/c++/v1/__bit/countl.h +48 -0
  685. package/dist/emscripten/include/c++/v1/__bit/countr.h +48 -0
  686. package/dist/emscripten/include/c++/v1/__bit/endian.h +38 -0
  687. package/dist/emscripten/include/c++/v1/__bit/has_single_bit.h +37 -0
  688. package/dist/emscripten/include/c++/v1/__bit/invert_if.h +30 -0
  689. package/dist/emscripten/include/c++/v1/__bit/popcount.h +42 -0
  690. package/dist/emscripten/include/c++/v1/__bit/rotate.h +60 -0
  691. package/dist/emscripten/include/c++/v1/__bit_reference +735 -0
  692. package/dist/emscripten/include/c++/v1/__charconv/chars_format.h +61 -0
  693. package/dist/emscripten/include/c++/v1/__charconv/from_chars_floating_point.h +73 -0
  694. package/dist/emscripten/include/c++/v1/__charconv/from_chars_integral.h +240 -0
  695. package/dist/emscripten/include/c++/v1/__charconv/from_chars_result.h +39 -0
  696. package/dist/emscripten/include/c++/v1/__charconv/tables.h +159 -0
  697. package/dist/emscripten/include/c++/v1/__charconv/to_chars.h +25 -0
  698. package/dist/emscripten/include/c++/v1/__charconv/to_chars_base_10.h +184 -0
  699. package/dist/emscripten/include/c++/v1/__charconv/to_chars_floating_point.h +55 -0
  700. package/dist/emscripten/include/c++/v1/__charconv/to_chars_integral.h +344 -0
  701. package/dist/emscripten/include/c++/v1/__charconv/to_chars_result.h +48 -0
  702. package/dist/emscripten/include/c++/v1/__charconv/traits.h +167 -0
  703. package/dist/emscripten/include/c++/v1/__chrono/calendar.h +44 -0
  704. package/dist/emscripten/include/c++/v1/__chrono/concepts.h +36 -0
  705. package/dist/emscripten/include/c++/v1/__chrono/convert_to_timespec.h +51 -0
  706. package/dist/emscripten/include/c++/v1/__chrono/convert_to_tm.h +238 -0
  707. package/dist/emscripten/include/c++/v1/__chrono/day.h +110 -0
  708. package/dist/emscripten/include/c++/v1/__chrono/duration.h +570 -0
  709. package/dist/emscripten/include/c++/v1/__chrono/exception.h +135 -0
  710. package/dist/emscripten/include/c++/v1/__chrono/file_clock.h +82 -0
  711. package/dist/emscripten/include/c++/v1/__chrono/formatter.h +1035 -0
  712. package/dist/emscripten/include/c++/v1/__chrono/gps_clock.h +90 -0
  713. package/dist/emscripten/include/c++/v1/__chrono/hh_mm_ss.h +112 -0
  714. package/dist/emscripten/include/c++/v1/__chrono/high_resolution_clock.h +35 -0
  715. package/dist/emscripten/include/c++/v1/__chrono/is_clock.h +72 -0
  716. package/dist/emscripten/include/c++/v1/__chrono/leap_second.h +144 -0
  717. package/dist/emscripten/include/c++/v1/__chrono/literals.h +45 -0
  718. package/dist/emscripten/include/c++/v1/__chrono/local_info.h +50 -0
  719. package/dist/emscripten/include/c++/v1/__chrono/month.h +128 -0
  720. package/dist/emscripten/include/c++/v1/__chrono/month_weekday.h +127 -0
  721. package/dist/emscripten/include/c++/v1/__chrono/monthday.h +153 -0
  722. package/dist/emscripten/include/c++/v1/__chrono/ostream.h +354 -0
  723. package/dist/emscripten/include/c++/v1/__chrono/parser_std_format_spec.h +421 -0
  724. package/dist/emscripten/include/c++/v1/__chrono/statically_widen.h +52 -0
  725. package/dist/emscripten/include/c++/v1/__chrono/steady_clock.h +42 -0
  726. package/dist/emscripten/include/c++/v1/__chrono/sys_info.h +51 -0
  727. package/dist/emscripten/include/c++/v1/__chrono/system_clock.h +52 -0
  728. package/dist/emscripten/include/c++/v1/__chrono/tai_clock.h +108 -0
  729. package/dist/emscripten/include/c++/v1/__chrono/time_point.h +255 -0
  730. package/dist/emscripten/include/c++/v1/__chrono/time_zone.h +185 -0
  731. package/dist/emscripten/include/c++/v1/__chrono/time_zone_link.h +79 -0
  732. package/dist/emscripten/include/c++/v1/__chrono/tzdb.h +96 -0
  733. package/dist/emscripten/include/c++/v1/__chrono/tzdb_list.h +108 -0
  734. package/dist/emscripten/include/c++/v1/__chrono/utc_clock.h +163 -0
  735. package/dist/emscripten/include/c++/v1/__chrono/weekday.h +192 -0
  736. package/dist/emscripten/include/c++/v1/__chrono/year.h +129 -0
  737. package/dist/emscripten/include/c++/v1/__chrono/year_month.h +136 -0
  738. package/dist/emscripten/include/c++/v1/__chrono/year_month_day.h +360 -0
  739. package/dist/emscripten/include/c++/v1/__chrono/year_month_weekday.h +313 -0
  740. package/dist/emscripten/include/c++/v1/__chrono/zoned_time.h +244 -0
  741. package/dist/emscripten/include/c++/v1/__compare/common_comparison_category.h +86 -0
  742. package/dist/emscripten/include/c++/v1/__compare/compare_partial_order_fallback.h +75 -0
  743. package/dist/emscripten/include/c++/v1/__compare/compare_strong_order_fallback.h +72 -0
  744. package/dist/emscripten/include/c++/v1/__compare/compare_three_way.h +40 -0
  745. package/dist/emscripten/include/c++/v1/__compare/compare_three_way_result.h +46 -0
  746. package/dist/emscripten/include/c++/v1/__compare/compare_weak_order_fallback.h +73 -0
  747. package/dist/emscripten/include/c++/v1/__compare/is_eq.h +34 -0
  748. package/dist/emscripten/include/c++/v1/__compare/ordering.h +282 -0
  749. package/dist/emscripten/include/c++/v1/__compare/partial_order.h +77 -0
  750. package/dist/emscripten/include/c++/v1/__compare/strong_order.h +125 -0
  751. package/dist/emscripten/include/c++/v1/__compare/synth_three_way.h +53 -0
  752. package/dist/emscripten/include/c++/v1/__compare/three_way_comparable.h +55 -0
  753. package/dist/emscripten/include/c++/v1/__compare/weak_order.h +105 -0
  754. package/dist/emscripten/include/c++/v1/__concepts/arithmetic.h +43 -0
  755. package/dist/emscripten/include/c++/v1/__concepts/assignable.h +41 -0
  756. package/dist/emscripten/include/c++/v1/__concepts/boolean_testable.h +38 -0
  757. package/dist/emscripten/include/c++/v1/__concepts/class_or_enum.h +34 -0
  758. package/dist/emscripten/include/c++/v1/__concepts/common_reference_with.h +36 -0
  759. package/dist/emscripten/include/c++/v1/__concepts/common_with.h +52 -0
  760. package/dist/emscripten/include/c++/v1/__concepts/comparison_common_type.h +40 -0
  761. package/dist/emscripten/include/c++/v1/__concepts/constructible.h +55 -0
  762. package/dist/emscripten/include/c++/v1/__concepts/convertible_to.h +33 -0
  763. package/dist/emscripten/include/c++/v1/__concepts/copyable.h +41 -0
  764. package/dist/emscripten/include/c++/v1/__concepts/derived_from.h +33 -0
  765. package/dist/emscripten/include/c++/v1/__concepts/destructible.h +32 -0
  766. package/dist/emscripten/include/c++/v1/__concepts/different_from.h +31 -0
  767. package/dist/emscripten/include/c++/v1/__concepts/equality_comparable.h +57 -0
  768. package/dist/emscripten/include/c++/v1/__concepts/invocable.h +40 -0
  769. package/dist/emscripten/include/c++/v1/__concepts/movable.h +35 -0
  770. package/dist/emscripten/include/c++/v1/__concepts/predicate.h +34 -0
  771. package/dist/emscripten/include/c++/v1/__concepts/regular.h +33 -0
  772. package/dist/emscripten/include/c++/v1/__concepts/relation.h +43 -0
  773. package/dist/emscripten/include/c++/v1/__concepts/same_as.h +35 -0
  774. package/dist/emscripten/include/c++/v1/__concepts/semiregular.h +33 -0
  775. package/dist/emscripten/include/c++/v1/__concepts/swappable.h +122 -0
  776. package/dist/emscripten/include/c++/v1/__concepts/totally_ordered.h +59 -0
  777. package/dist/emscripten/include/c++/v1/__condition_variable/condition_variable.h +232 -0
  778. package/dist/emscripten/include/c++/v1/__config +1050 -0
  779. package/dist/emscripten/include/c++/v1/__config_site +28 -0
  780. package/dist/emscripten/include/c++/v1/__config_site.in +62 -0
  781. package/dist/emscripten/include/c++/v1/__configuration/abi.h +143 -0
  782. package/dist/emscripten/include/c++/v1/__configuration/availability.h +314 -0
  783. package/dist/emscripten/include/c++/v1/__configuration/compiler.h +51 -0
  784. package/dist/emscripten/include/c++/v1/__configuration/experimental.h +38 -0
  785. package/dist/emscripten/include/c++/v1/__configuration/hardening.h +215 -0
  786. package/dist/emscripten/include/c++/v1/__configuration/language.h +53 -0
  787. package/dist/emscripten/include/c++/v1/__configuration/platform.h +56 -0
  788. package/dist/emscripten/include/c++/v1/__coroutine/coroutine_handle.h +177 -0
  789. package/dist/emscripten/include/c++/v1/__coroutine/coroutine_traits.h +48 -0
  790. package/dist/emscripten/include/c++/v1/__coroutine/noop_coroutine_handle.h +97 -0
  791. package/dist/emscripten/include/c++/v1/__coroutine/trivial_awaitables.h +40 -0
  792. package/dist/emscripten/include/c++/v1/__cstddef/byte.h +85 -0
  793. package/dist/emscripten/include/c++/v1/__cstddef/max_align_t.h +27 -0
  794. package/dist/emscripten/include/c++/v1/__cstddef/nullptr_t.h +24 -0
  795. package/dist/emscripten/include/c++/v1/__cstddef/ptrdiff_t.h +24 -0
  796. package/dist/emscripten/include/c++/v1/__cstddef/size_t.h +24 -0
  797. package/dist/emscripten/include/c++/v1/__cxxabi_config.h +131 -0
  798. package/dist/emscripten/include/c++/v1/__debug_utils/randomize_range.h +42 -0
  799. package/dist/emscripten/include/c++/v1/__debug_utils/sanitizers.h +104 -0
  800. package/dist/emscripten/include/c++/v1/__debug_utils/strict_weak_ordering_check.h +77 -0
  801. package/dist/emscripten/include/c++/v1/__exception/exception.h +96 -0
  802. package/dist/emscripten/include/c++/v1/__exception/exception_ptr.h +226 -0
  803. package/dist/emscripten/include/c++/v1/__exception/nested_exception.h +100 -0
  804. package/dist/emscripten/include/c++/v1/__exception/operations.h +42 -0
  805. package/dist/emscripten/include/c++/v1/__exception/terminate.h +22 -0
  806. package/dist/emscripten/include/c++/v1/__expected/bad_expected_access.h +75 -0
  807. package/dist/emscripten/include/c++/v1/__expected/expected.h +1907 -0
  808. package/dist/emscripten/include/c++/v1/__expected/unexpect.h +32 -0
  809. package/dist/emscripten/include/c++/v1/__expected/unexpected.h +127 -0
  810. package/dist/emscripten/include/c++/v1/__filesystem/copy_options.h +69 -0
  811. package/dist/emscripten/include/c++/v1/__filesystem/directory_entry.h +474 -0
  812. package/dist/emscripten/include/c++/v1/__filesystem/directory_iterator.h +148 -0
  813. package/dist/emscripten/include/c++/v1/__filesystem/directory_options.h +60 -0
  814. package/dist/emscripten/include/c++/v1/__filesystem/file_status.h +67 -0
  815. package/dist/emscripten/include/c++/v1/__filesystem/file_time_type.h +31 -0
  816. package/dist/emscripten/include/c++/v1/__filesystem/file_type.h +42 -0
  817. package/dist/emscripten/include/c++/v1/__filesystem/filesystem_error.h +87 -0
  818. package/dist/emscripten/include/c++/v1/__filesystem/operations.h +341 -0
  819. package/dist/emscripten/include/c++/v1/__filesystem/path.h +936 -0
  820. package/dist/emscripten/include/c++/v1/__filesystem/path_iterator.h +110 -0
  821. package/dist/emscripten/include/c++/v1/__filesystem/perm_options.h +57 -0
  822. package/dist/emscripten/include/c++/v1/__filesystem/perms.h +80 -0
  823. package/dist/emscripten/include/c++/v1/__filesystem/recursive_directory_iterator.h +158 -0
  824. package/dist/emscripten/include/c++/v1/__filesystem/space_info.h +38 -0
  825. package/dist/emscripten/include/c++/v1/__filesystem/u8path.h +93 -0
  826. package/dist/emscripten/include/c++/v1/__flat_map/flat_map.h +1289 -0
  827. package/dist/emscripten/include/c++/v1/__flat_map/flat_multimap.h +1090 -0
  828. package/dist/emscripten/include/c++/v1/__flat_map/key_value_iterator.h +217 -0
  829. package/dist/emscripten/include/c++/v1/__flat_map/sorted_equivalent.h +31 -0
  830. package/dist/emscripten/include/c++/v1/__flat_map/sorted_unique.h +31 -0
  831. package/dist/emscripten/include/c++/v1/__flat_map/utils.h +122 -0
  832. package/dist/emscripten/include/c++/v1/__flat_set/flat_multiset.h +860 -0
  833. package/dist/emscripten/include/c++/v1/__flat_set/flat_set.h +892 -0
  834. package/dist/emscripten/include/c++/v1/__flat_set/ra_iterator.h +157 -0
  835. package/dist/emscripten/include/c++/v1/__flat_set/utils.h +82 -0
  836. package/dist/emscripten/include/c++/v1/__format/buffer.h +708 -0
  837. package/dist/emscripten/include/c++/v1/__format/concepts.h +69 -0
  838. package/dist/emscripten/include/c++/v1/__format/container_adaptor.h +73 -0
  839. package/dist/emscripten/include/c++/v1/__format/enable_insertable.h +35 -0
  840. package/dist/emscripten/include/c++/v1/__format/escaped_output_table.h +887 -0
  841. package/dist/emscripten/include/c++/v1/__format/extended_grapheme_cluster_table.h +1669 -0
  842. package/dist/emscripten/include/c++/v1/__format/fmt_pair_like.h +42 -0
  843. package/dist/emscripten/include/c++/v1/__format/format_arg.h +399 -0
  844. package/dist/emscripten/include/c++/v1/__format/format_arg_store.h +282 -0
  845. package/dist/emscripten/include/c++/v1/__format/format_args.h +78 -0
  846. package/dist/emscripten/include/c++/v1/__format/format_context.h +215 -0
  847. package/dist/emscripten/include/c++/v1/__format/format_error.h +50 -0
  848. package/dist/emscripten/include/c++/v1/__format/format_functions.h +722 -0
  849. package/dist/emscripten/include/c++/v1/__format/format_parse_context.h +105 -0
  850. package/dist/emscripten/include/c++/v1/__format/format_string.h +160 -0
  851. package/dist/emscripten/include/c++/v1/__format/format_to_n_result.h +35 -0
  852. package/dist/emscripten/include/c++/v1/__format/formatter.h +58 -0
  853. package/dist/emscripten/include/c++/v1/__format/formatter_bool.h +80 -0
  854. package/dist/emscripten/include/c++/v1/__format/formatter_char.h +101 -0
  855. package/dist/emscripten/include/c++/v1/__format/formatter_floating_point.h +792 -0
  856. package/dist/emscripten/include/c++/v1/__format/formatter_integer.h +126 -0
  857. package/dist/emscripten/include/c++/v1/__format/formatter_integral.h +446 -0
  858. package/dist/emscripten/include/c++/v1/__format/formatter_output.h +313 -0
  859. package/dist/emscripten/include/c++/v1/__format/formatter_pointer.h +80 -0
  860. package/dist/emscripten/include/c++/v1/__format/formatter_string.h +173 -0
  861. package/dist/emscripten/include/c++/v1/__format/formatter_tuple.h +148 -0
  862. package/dist/emscripten/include/c++/v1/__format/indic_conjunct_break_table.h +553 -0
  863. package/dist/emscripten/include/c++/v1/__format/parser_std_format_spec.h +1172 -0
  864. package/dist/emscripten/include/c++/v1/__format/range_default_formatter.h +175 -0
  865. package/dist/emscripten/include/c++/v1/__format/range_format.h +71 -0
  866. package/dist/emscripten/include/c++/v1/__format/range_formatter.h +265 -0
  867. package/dist/emscripten/include/c++/v1/__format/unicode.h +602 -0
  868. package/dist/emscripten/include/c++/v1/__format/width_estimation_table.h +275 -0
  869. package/dist/emscripten/include/c++/v1/__format/write_escaped.h +242 -0
  870. package/dist/emscripten/include/c++/v1/__functional/binary_function.h +53 -0
  871. package/dist/emscripten/include/c++/v1/__functional/binary_negate.h +51 -0
  872. package/dist/emscripten/include/c++/v1/__functional/bind.h +288 -0
  873. package/dist/emscripten/include/c++/v1/__functional/bind_back.h +83 -0
  874. package/dist/emscripten/include/c++/v1/__functional/bind_front.h +54 -0
  875. package/dist/emscripten/include/c++/v1/__functional/binder1st.h +54 -0
  876. package/dist/emscripten/include/c++/v1/__functional/binder2nd.h +54 -0
  877. package/dist/emscripten/include/c++/v1/__functional/boyer_moore_searcher.h +305 -0
  878. package/dist/emscripten/include/c++/v1/__functional/compose.h +53 -0
  879. package/dist/emscripten/include/c++/v1/__functional/default_searcher.h +54 -0
  880. package/dist/emscripten/include/c++/v1/__functional/function.h +813 -0
  881. package/dist/emscripten/include/c++/v1/__functional/hash.h +462 -0
  882. package/dist/emscripten/include/c++/v1/__functional/identity.h +65 -0
  883. package/dist/emscripten/include/c++/v1/__functional/invoke.h +55 -0
  884. package/dist/emscripten/include/c++/v1/__functional/is_transparent.h +42 -0
  885. package/dist/emscripten/include/c++/v1/__functional/mem_fn.h +53 -0
  886. package/dist/emscripten/include/c++/v1/__functional/mem_fun_ref.h +145 -0
  887. package/dist/emscripten/include/c++/v1/__functional/not_fn.h +76 -0
  888. package/dist/emscripten/include/c++/v1/__functional/operations.h +569 -0
  889. package/dist/emscripten/include/c++/v1/__functional/perfect_forward.h +105 -0
  890. package/dist/emscripten/include/c++/v1/__functional/pointer_to_binary_function.h +43 -0
  891. package/dist/emscripten/include/c++/v1/__functional/pointer_to_unary_function.h +43 -0
  892. package/dist/emscripten/include/c++/v1/__functional/ranges_operations.h +122 -0
  893. package/dist/emscripten/include/c++/v1/__functional/reference_wrapper.h +192 -0
  894. package/dist/emscripten/include/c++/v1/__functional/unary_function.h +50 -0
  895. package/dist/emscripten/include/c++/v1/__functional/unary_negate.h +47 -0
  896. package/dist/emscripten/include/c++/v1/__functional/weak_result_type.h +214 -0
  897. package/dist/emscripten/include/c++/v1/__fwd/array.h +47 -0
  898. package/dist/emscripten/include/c++/v1/__fwd/bit_reference.h +44 -0
  899. package/dist/emscripten/include/c++/v1/__fwd/byte.h +26 -0
  900. package/dist/emscripten/include/c++/v1/__fwd/complex.h +42 -0
  901. package/dist/emscripten/include/c++/v1/__fwd/deque.h +26 -0
  902. package/dist/emscripten/include/c++/v1/__fwd/format.h +38 -0
  903. package/dist/emscripten/include/c++/v1/__fwd/fstream.h +53 -0
  904. package/dist/emscripten/include/c++/v1/__fwd/functional.h +35 -0
  905. package/dist/emscripten/include/c++/v1/__fwd/get.h +24 -0
  906. package/dist/emscripten/include/c++/v1/__fwd/ios.h +43 -0
  907. package/dist/emscripten/include/c++/v1/__fwd/istream.h +43 -0
  908. package/dist/emscripten/include/c++/v1/__fwd/mdspan.h +57 -0
  909. package/dist/emscripten/include/c++/v1/__fwd/memory.h +28 -0
  910. package/dist/emscripten/include/c++/v1/__fwd/memory_resource.h +31 -0
  911. package/dist/emscripten/include/c++/v1/__fwd/ostream.h +35 -0
  912. package/dist/emscripten/include/c++/v1/__fwd/pair.h +51 -0
  913. package/dist/emscripten/include/c++/v1/__fwd/queue.h +31 -0
  914. package/dist/emscripten/include/c++/v1/__fwd/span.h +38 -0
  915. package/dist/emscripten/include/c++/v1/__fwd/sstream.h +58 -0
  916. package/dist/emscripten/include/c++/v1/__fwd/stack.h +26 -0
  917. package/dist/emscripten/include/c++/v1/__fwd/streambuf.h +35 -0
  918. package/dist/emscripten/include/c++/v1/__fwd/string.h +107 -0
  919. package/dist/emscripten/include/c++/v1/__fwd/string_view.h +50 -0
  920. package/dist/emscripten/include/c++/v1/__fwd/subrange.h +49 -0
  921. package/dist/emscripten/include/c++/v1/__fwd/tuple.h +66 -0
  922. package/dist/emscripten/include/c++/v1/__fwd/variant.h +68 -0
  923. package/dist/emscripten/include/c++/v1/__fwd/vector.h +29 -0
  924. package/dist/emscripten/include/c++/v1/__hash_table +2124 -0
  925. package/dist/emscripten/include/c++/v1/__ios/fpos.h +76 -0
  926. package/dist/emscripten/include/c++/v1/__iterator/access.h +95 -0
  927. package/dist/emscripten/include/c++/v1/__iterator/advance.h +199 -0
  928. package/dist/emscripten/include/c++/v1/__iterator/aliasing_iterator.h +130 -0
  929. package/dist/emscripten/include/c++/v1/__iterator/back_insert_iterator.h +79 -0
  930. package/dist/emscripten/include/c++/v1/__iterator/bounded_iter.h +292 -0
  931. package/dist/emscripten/include/c++/v1/__iterator/common_iterator.h +301 -0
  932. package/dist/emscripten/include/c++/v1/__iterator/concepts.h +324 -0
  933. package/dist/emscripten/include/c++/v1/__iterator/counted_iterator.h +289 -0
  934. package/dist/emscripten/include/c++/v1/__iterator/cpp17_iterator_concepts.h +191 -0
  935. package/dist/emscripten/include/c++/v1/__iterator/data.h +48 -0
  936. package/dist/emscripten/include/c++/v1/__iterator/default_sentinel.h +30 -0
  937. package/dist/emscripten/include/c++/v1/__iterator/distance.h +117 -0
  938. package/dist/emscripten/include/c++/v1/__iterator/empty.h +44 -0
  939. package/dist/emscripten/include/c++/v1/__iterator/erase_if_container.h +43 -0
  940. package/dist/emscripten/include/c++/v1/__iterator/front_insert_iterator.h +77 -0
  941. package/dist/emscripten/include/c++/v1/__iterator/incrementable_traits.h +79 -0
  942. package/dist/emscripten/include/c++/v1/__iterator/indirectly_comparable.h +33 -0
  943. package/dist/emscripten/include/c++/v1/__iterator/insert_iterator.h +89 -0
  944. package/dist/emscripten/include/c++/v1/__iterator/istream_iterator.h +103 -0
  945. package/dist/emscripten/include/c++/v1/__iterator/istreambuf_iterator.h +110 -0
  946. package/dist/emscripten/include/c++/v1/__iterator/iter_move.h +104 -0
  947. package/dist/emscripten/include/c++/v1/__iterator/iter_swap.h +108 -0
  948. package/dist/emscripten/include/c++/v1/__iterator/iterator.h +46 -0
  949. package/dist/emscripten/include/c++/v1/__iterator/iterator_traits.h +479 -0
  950. package/dist/emscripten/include/c++/v1/__iterator/iterator_with_data.h +105 -0
  951. package/dist/emscripten/include/c++/v1/__iterator/mergeable.h +42 -0
  952. package/dist/emscripten/include/c++/v1/__iterator/move_iterator.h +347 -0
  953. package/dist/emscripten/include/c++/v1/__iterator/move_sentinel.h +61 -0
  954. package/dist/emscripten/include/c++/v1/__iterator/next.h +74 -0
  955. package/dist/emscripten/include/c++/v1/__iterator/ostream_iterator.h +69 -0
  956. package/dist/emscripten/include/c++/v1/__iterator/ostreambuf_iterator.h +71 -0
  957. package/dist/emscripten/include/c++/v1/__iterator/permutable.h +34 -0
  958. package/dist/emscripten/include/c++/v1/__iterator/prev.h +84 -0
  959. package/dist/emscripten/include/c++/v1/__iterator/product_iterator.h +76 -0
  960. package/dist/emscripten/include/c++/v1/__iterator/projected.h +61 -0
  961. package/dist/emscripten/include/c++/v1/__iterator/ranges_iterator_traits.h +40 -0
  962. package/dist/emscripten/include/c++/v1/__iterator/readable_traits.h +81 -0
  963. package/dist/emscripten/include/c++/v1/__iterator/reverse_access.h +79 -0
  964. package/dist/emscripten/include/c++/v1/__iterator/reverse_iterator.h +343 -0
  965. package/dist/emscripten/include/c++/v1/__iterator/segmented_iterator.h +80 -0
  966. package/dist/emscripten/include/c++/v1/__iterator/size.h +60 -0
  967. package/dist/emscripten/include/c++/v1/__iterator/sortable.h +35 -0
  968. package/dist/emscripten/include/c++/v1/__iterator/static_bounded_iter.h +318 -0
  969. package/dist/emscripten/include/c++/v1/__iterator/unreachable_sentinel.h +37 -0
  970. package/dist/emscripten/include/c++/v1/__iterator/wrap_iter.h +253 -0
  971. package/dist/emscripten/include/c++/v1/__locale +1501 -0
  972. package/dist/emscripten/include/c++/v1/__locale_dir/check_grouping.h +31 -0
  973. package/dist/emscripten/include/c++/v1/__locale_dir/get_c_locale.h +40 -0
  974. package/dist/emscripten/include/c++/v1/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +130 -0
  975. package/dist/emscripten/include/c++/v1/__locale_dir/locale_base_api/ibm.h +97 -0
  976. package/dist/emscripten/include/c++/v1/__locale_dir/locale_base_api/openbsd.h +19 -0
  977. package/dist/emscripten/include/c++/v1/__locale_dir/locale_base_api.h +304 -0
  978. package/dist/emscripten/include/c++/v1/__locale_dir/messages.h +143 -0
  979. package/dist/emscripten/include/c++/v1/__locale_dir/money.h +873 -0
  980. package/dist/emscripten/include/c++/v1/__locale_dir/num.h +1019 -0
  981. package/dist/emscripten/include/c++/v1/__locale_dir/pad_and_output.h +87 -0
  982. package/dist/emscripten/include/c++/v1/__locale_dir/scan_keyword.h +143 -0
  983. package/dist/emscripten/include/c++/v1/__locale_dir/support/aix.h +296 -0
  984. package/dist/emscripten/include/c++/v1/__locale_dir/support/apple.h +20 -0
  985. package/dist/emscripten/include/c++/v1/__locale_dir/support/bsd_like.h +211 -0
  986. package/dist/emscripten/include/c++/v1/__locale_dir/support/freebsd.h +20 -0
  987. package/dist/emscripten/include/c++/v1/__locale_dir/support/fuchsia.h +153 -0
  988. package/dist/emscripten/include/c++/v1/__locale_dir/support/linux.h +244 -0
  989. package/dist/emscripten/include/c++/v1/__locale_dir/support/netbsd.h +20 -0
  990. package/dist/emscripten/include/c++/v1/__locale_dir/support/newlib.h +243 -0
  991. package/dist/emscripten/include/c++/v1/__locale_dir/support/no_locale/characters.h +92 -0
  992. package/dist/emscripten/include/c++/v1/__locale_dir/support/no_locale/strtonum.h +40 -0
  993. package/dist/emscripten/include/c++/v1/__locale_dir/support/windows.h +308 -0
  994. package/dist/emscripten/include/c++/v1/__locale_dir/time.h +762 -0
  995. package/dist/emscripten/include/c++/v1/__locale_dir/wbuffer_convert.h +430 -0
  996. package/dist/emscripten/include/c++/v1/__locale_dir/wstring_convert.h +254 -0
  997. package/dist/emscripten/include/c++/v1/__log_hardening_failure +42 -0
  998. package/dist/emscripten/include/c++/v1/__math/abs.h +70 -0
  999. package/dist/emscripten/include/c++/v1/__math/copysign.h +44 -0
  1000. package/dist/emscripten/include/c++/v1/__math/error_functions.h +60 -0
  1001. package/dist/emscripten/include/c++/v1/__math/exponential_functions.h +171 -0
  1002. package/dist/emscripten/include/c++/v1/__math/fdim.h +48 -0
  1003. package/dist/emscripten/include/c++/v1/__math/fma.h +55 -0
  1004. package/dist/emscripten/include/c++/v1/__math/gamma.h +62 -0
  1005. package/dist/emscripten/include/c++/v1/__math/hyperbolic_functions.h +76 -0
  1006. package/dist/emscripten/include/c++/v1/__math/hypot.h +108 -0
  1007. package/dist/emscripten/include/c++/v1/__math/inverse_hyperbolic_functions.h +76 -0
  1008. package/dist/emscripten/include/c++/v1/__math/inverse_trigonometric_functions.h +99 -0
  1009. package/dist/emscripten/include/c++/v1/__math/logarithms.h +124 -0
  1010. package/dist/emscripten/include/c++/v1/__math/min_max.h +74 -0
  1011. package/dist/emscripten/include/c++/v1/__math/modulo.h +63 -0
  1012. package/dist/emscripten/include/c++/v1/__math/remainder.h +72 -0
  1013. package/dist/emscripten/include/c++/v1/__math/roots.h +62 -0
  1014. package/dist/emscripten/include/c++/v1/__math/rounding_functions.h +245 -0
  1015. package/dist/emscripten/include/c++/v1/__math/special_functions.h +84 -0
  1016. package/dist/emscripten/include/c++/v1/__math/traits.h +265 -0
  1017. package/dist/emscripten/include/c++/v1/__math/trigonometric_functions.h +76 -0
  1018. package/dist/emscripten/include/c++/v1/__mbstate_t.h +54 -0
  1019. package/dist/emscripten/include/c++/v1/__mdspan/aligned_accessor.h +87 -0
  1020. package/dist/emscripten/include/c++/v1/__mdspan/default_accessor.h +65 -0
  1021. package/dist/emscripten/include/c++/v1/__mdspan/extents.h +536 -0
  1022. package/dist/emscripten/include/c++/v1/__mdspan/layout_left.h +203 -0
  1023. package/dist/emscripten/include/c++/v1/__mdspan/layout_right.h +201 -0
  1024. package/dist/emscripten/include/c++/v1/__mdspan/layout_stride.h +370 -0
  1025. package/dist/emscripten/include/c++/v1/__mdspan/mdspan.h +324 -0
  1026. package/dist/emscripten/include/c++/v1/__memory/addressof.h +61 -0
  1027. package/dist/emscripten/include/c++/v1/__memory/align.h +42 -0
  1028. package/dist/emscripten/include/c++/v1/__memory/allocate_at_least.h +53 -0
  1029. package/dist/emscripten/include/c++/v1/__memory/allocation_guard.h +109 -0
  1030. package/dist/emscripten/include/c++/v1/__memory/allocator.h +165 -0
  1031. package/dist/emscripten/include/c++/v1/__memory/allocator_arg_t.h +75 -0
  1032. package/dist/emscripten/include/c++/v1/__memory/allocator_destructor.h +40 -0
  1033. package/dist/emscripten/include/c++/v1/__memory/allocator_traits.h +383 -0
  1034. package/dist/emscripten/include/c++/v1/__memory/array_cookie.h +123 -0
  1035. package/dist/emscripten/include/c++/v1/__memory/assume_aligned.h +50 -0
  1036. package/dist/emscripten/include/c++/v1/__memory/auto_ptr.h +92 -0
  1037. package/dist/emscripten/include/c++/v1/__memory/compressed_pair.h +142 -0
  1038. package/dist/emscripten/include/c++/v1/__memory/concepts.h +63 -0
  1039. package/dist/emscripten/include/c++/v1/__memory/construct_at.h +82 -0
  1040. package/dist/emscripten/include/c++/v1/__memory/destroy.h +71 -0
  1041. package/dist/emscripten/include/c++/v1/__memory/destruct_n.h +63 -0
  1042. package/dist/emscripten/include/c++/v1/__memory/inout_ptr.h +110 -0
  1043. package/dist/emscripten/include/c++/v1/__memory/is_sufficiently_aligned.h +34 -0
  1044. package/dist/emscripten/include/c++/v1/__memory/noexcept_move_assign_container.h +37 -0
  1045. package/dist/emscripten/include/c++/v1/__memory/out_ptr.h +102 -0
  1046. package/dist/emscripten/include/c++/v1/__memory/pointer_traits.h +271 -0
  1047. package/dist/emscripten/include/c++/v1/__memory/ranges_construct_at.h +72 -0
  1048. package/dist/emscripten/include/c++/v1/__memory/ranges_destroy.h +79 -0
  1049. package/dist/emscripten/include/c++/v1/__memory/ranges_uninitialized_algorithms.h +284 -0
  1050. package/dist/emscripten/include/c++/v1/__memory/raw_storage_iterator.h +80 -0
  1051. package/dist/emscripten/include/c++/v1/__memory/shared_count.h +116 -0
  1052. package/dist/emscripten/include/c++/v1/__memory/shared_ptr.h +1543 -0
  1053. package/dist/emscripten/include/c++/v1/__memory/swap_allocator.h +54 -0
  1054. package/dist/emscripten/include/c++/v1/__memory/temp_value.h +57 -0
  1055. package/dist/emscripten/include/c++/v1/__memory/temporary_buffer.h +45 -0
  1056. package/dist/emscripten/include/c++/v1/__memory/uninitialized_algorithms.h +577 -0
  1057. package/dist/emscripten/include/c++/v1/__memory/unique_ptr.h +813 -0
  1058. package/dist/emscripten/include/c++/v1/__memory/unique_temporary_buffer.h +93 -0
  1059. package/dist/emscripten/include/c++/v1/__memory/uses_allocator.h +52 -0
  1060. package/dist/emscripten/include/c++/v1/__memory/uses_allocator_construction.h +234 -0
  1061. package/dist/emscripten/include/c++/v1/__memory_resource/memory_resource.h +91 -0
  1062. package/dist/emscripten/include/c++/v1/__memory_resource/monotonic_buffer_resource.h +119 -0
  1063. package/dist/emscripten/include/c++/v1/__memory_resource/polymorphic_allocator.h +251 -0
  1064. package/dist/emscripten/include/c++/v1/__memory_resource/pool_options.h +38 -0
  1065. package/dist/emscripten/include/c++/v1/__memory_resource/synchronized_pool_resource.h +95 -0
  1066. package/dist/emscripten/include/c++/v1/__memory_resource/unsynchronized_pool_resource.h +106 -0
  1067. package/dist/emscripten/include/c++/v1/__mutex/lock_guard.h +46 -0
  1068. package/dist/emscripten/include/c++/v1/__mutex/mutex.h +53 -0
  1069. package/dist/emscripten/include/c++/v1/__mutex/once_flag.h +163 -0
  1070. package/dist/emscripten/include/c++/v1/__mutex/tag_types.h +44 -0
  1071. package/dist/emscripten/include/c++/v1/__mutex/unique_lock.h +174 -0
  1072. package/dist/emscripten/include/c++/v1/__new/align_val_t.h +35 -0
  1073. package/dist/emscripten/include/c++/v1/__new/allocate.h +78 -0
  1074. package/dist/emscripten/include/c++/v1/__new/destroying_delete_t.h +29 -0
  1075. package/dist/emscripten/include/c++/v1/__new/exceptions.h +79 -0
  1076. package/dist/emscripten/include/c++/v1/__new/global_new_delete.h +70 -0
  1077. package/dist/emscripten/include/c++/v1/__new/interference_size.h +30 -0
  1078. package/dist/emscripten/include/c++/v1/__new/launder.h +34 -0
  1079. package/dist/emscripten/include/c++/v1/__new/new_handler.h +28 -0
  1080. package/dist/emscripten/include/c++/v1/__new/nothrow_t.h +29 -0
  1081. package/dist/emscripten/include/c++/v1/__new/placement_new_delete.h +34 -0
  1082. package/dist/emscripten/include/c++/v1/__node_handle +210 -0
  1083. package/dist/emscripten/include/c++/v1/__numeric/accumulate.h +53 -0
  1084. package/dist/emscripten/include/c++/v1/__numeric/adjacent_difference.h +68 -0
  1085. package/dist/emscripten/include/c++/v1/__numeric/exclusive_scan.h +58 -0
  1086. package/dist/emscripten/include/c++/v1/__numeric/gcd_lcm.h +120 -0
  1087. package/dist/emscripten/include/c++/v1/__numeric/inclusive_scan.h +59 -0
  1088. package/dist/emscripten/include/c++/v1/__numeric/inner_product.h +58 -0
  1089. package/dist/emscripten/include/c++/v1/__numeric/iota.h +30 -0
  1090. package/dist/emscripten/include/c++/v1/__numeric/midpoint.h +83 -0
  1091. package/dist/emscripten/include/c++/v1/__numeric/partial_sum.h +66 -0
  1092. package/dist/emscripten/include/c++/v1/__numeric/pstl.h +174 -0
  1093. package/dist/emscripten/include/c++/v1/__numeric/ranges_iota.h +65 -0
  1094. package/dist/emscripten/include/c++/v1/__numeric/reduce.h +53 -0
  1095. package/dist/emscripten/include/c++/v1/__numeric/saturation_arithmetic.h +154 -0
  1096. package/dist/emscripten/include/c++/v1/__numeric/transform_exclusive_scan.h +42 -0
  1097. package/dist/emscripten/include/c++/v1/__numeric/transform_inclusive_scan.h +52 -0
  1098. package/dist/emscripten/include/c++/v1/__numeric/transform_reduce.h +59 -0
  1099. package/dist/emscripten/include/c++/v1/__ostream/basic_ostream.h +681 -0
  1100. package/dist/emscripten/include/c++/v1/__ostream/print.h +174 -0
  1101. package/dist/emscripten/include/c++/v1/__ostream/put_character_sequence.h +59 -0
  1102. package/dist/emscripten/include/c++/v1/__pstl/backend.h +39 -0
  1103. package/dist/emscripten/include/c++/v1/__pstl/backend_fwd.h +307 -0
  1104. package/dist/emscripten/include/c++/v1/__pstl/backends/default.h +507 -0
  1105. package/dist/emscripten/include/c++/v1/__pstl/backends/libdispatch.h +402 -0
  1106. package/dist/emscripten/include/c++/v1/__pstl/backends/serial.h +185 -0
  1107. package/dist/emscripten/include/c++/v1/__pstl/backends/std_thread.h +139 -0
  1108. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/any_of.h +103 -0
  1109. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/cpu_traits.h +89 -0
  1110. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/fill.h +70 -0
  1111. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/find_if.h +140 -0
  1112. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/for_each.h +70 -0
  1113. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/merge.h +89 -0
  1114. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/stable_sort.h +51 -0
  1115. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/transform.h +156 -0
  1116. package/dist/emscripten/include/c++/v1/__pstl/cpu_algos/transform_reduce.h +219 -0
  1117. package/dist/emscripten/include/c++/v1/__pstl/dispatch.h +71 -0
  1118. package/dist/emscripten/include/c++/v1/__pstl/handle_exception.h +61 -0
  1119. package/dist/emscripten/include/c++/v1/__random/bernoulli_distribution.h +123 -0
  1120. package/dist/emscripten/include/c++/v1/__random/binomial_distribution.h +205 -0
  1121. package/dist/emscripten/include/c++/v1/__random/cauchy_distribution.h +139 -0
  1122. package/dist/emscripten/include/c++/v1/__random/chi_squared_distribution.h +125 -0
  1123. package/dist/emscripten/include/c++/v1/__random/clamp_to_integral.h +59 -0
  1124. package/dist/emscripten/include/c++/v1/__random/default_random_engine.h +25 -0
  1125. package/dist/emscripten/include/c++/v1/__random/discard_block_engine.h +166 -0
  1126. package/dist/emscripten/include/c++/v1/__random/discrete_distribution.h +212 -0
  1127. package/dist/emscripten/include/c++/v1/__random/exponential_distribution.h +132 -0
  1128. package/dist/emscripten/include/c++/v1/__random/extreme_value_distribution.h +139 -0
  1129. package/dist/emscripten/include/c++/v1/__random/fisher_f_distribution.h +138 -0
  1130. package/dist/emscripten/include/c++/v1/__random/gamma_distribution.h +181 -0
  1131. package/dist/emscripten/include/c++/v1/__random/generate_canonical.h +51 -0
  1132. package/dist/emscripten/include/c++/v1/__random/geometric_distribution.h +120 -0
  1133. package/dist/emscripten/include/c++/v1/__random/independent_bits_engine.h +205 -0
  1134. package/dist/emscripten/include/c++/v1/__random/is_seed_sequence.h +31 -0
  1135. package/dist/emscripten/include/c++/v1/__random/is_valid.h +94 -0
  1136. package/dist/emscripten/include/c++/v1/__random/knuth_b.h +26 -0
  1137. package/dist/emscripten/include/c++/v1/__random/linear_congruential_engine.h +371 -0
  1138. package/dist/emscripten/include/c++/v1/__random/log2.h +66 -0
  1139. package/dist/emscripten/include/c++/v1/__random/lognormal_distribution.h +126 -0
  1140. package/dist/emscripten/include/c++/v1/__random/mersenne_twister_engine.h +488 -0
  1141. package/dist/emscripten/include/c++/v1/__random/negative_binomial_distribution.h +157 -0
  1142. package/dist/emscripten/include/c++/v1/__random/normal_distribution.h +176 -0
  1143. package/dist/emscripten/include/c++/v1/__random/piecewise_constant_distribution.h +305 -0
  1144. package/dist/emscripten/include/c++/v1/__random/piecewise_linear_distribution.h +319 -0
  1145. package/dist/emscripten/include/c++/v1/__random/poisson_distribution.h +241 -0
  1146. package/dist/emscripten/include/c++/v1/__random/random_device.h +81 -0
  1147. package/dist/emscripten/include/c++/v1/__random/ranlux.h +31 -0
  1148. package/dist/emscripten/include/c++/v1/__random/seed_seq.h +168 -0
  1149. package/dist/emscripten/include/c++/v1/__random/shuffle_order_engine.h +227 -0
  1150. package/dist/emscripten/include/c++/v1/__random/student_t_distribution.h +132 -0
  1151. package/dist/emscripten/include/c++/v1/__random/subtract_with_carry_engine.h +264 -0
  1152. package/dist/emscripten/include/c++/v1/__random/uniform_int_distribution.h +264 -0
  1153. package/dist/emscripten/include/c++/v1/__random/uniform_random_bit_generator.h +44 -0
  1154. package/dist/emscripten/include/c++/v1/__random/uniform_real_distribution.h +138 -0
  1155. package/dist/emscripten/include/c++/v1/__random/weibull_distribution.h +132 -0
  1156. package/dist/emscripten/include/c++/v1/__ranges/access.h +210 -0
  1157. package/dist/emscripten/include/c++/v1/__ranges/adjacent_transform_view.h +406 -0
  1158. package/dist/emscripten/include/c++/v1/__ranges/adjacent_view.h +419 -0
  1159. package/dist/emscripten/include/c++/v1/__ranges/all.h +78 -0
  1160. package/dist/emscripten/include/c++/v1/__ranges/as_rvalue_view.h +142 -0
  1161. package/dist/emscripten/include/c++/v1/__ranges/chunk_by_view.h +235 -0
  1162. package/dist/emscripten/include/c++/v1/__ranges/common_view.h +142 -0
  1163. package/dist/emscripten/include/c++/v1/__ranges/concepts.h +182 -0
  1164. package/dist/emscripten/include/c++/v1/__ranges/container_compatible_range.h +33 -0
  1165. package/dist/emscripten/include/c++/v1/__ranges/counted.h +89 -0
  1166. package/dist/emscripten/include/c++/v1/__ranges/dangling.h +42 -0
  1167. package/dist/emscripten/include/c++/v1/__ranges/data.h +102 -0
  1168. package/dist/emscripten/include/c++/v1/__ranges/drop_view.h +329 -0
  1169. package/dist/emscripten/include/c++/v1/__ranges/drop_while_view.h +136 -0
  1170. package/dist/emscripten/include/c++/v1/__ranges/elements_of.h +49 -0
  1171. package/dist/emscripten/include/c++/v1/__ranges/elements_view.h +418 -0
  1172. package/dist/emscripten/include/c++/v1/__ranges/empty.h +71 -0
  1173. package/dist/emscripten/include/c++/v1/__ranges/empty_view.h +54 -0
  1174. package/dist/emscripten/include/c++/v1/__ranges/enable_borrowed_range.h +40 -0
  1175. package/dist/emscripten/include/c++/v1/__ranges/enable_view.h +50 -0
  1176. package/dist/emscripten/include/c++/v1/__ranges/filter_view.h +260 -0
  1177. package/dist/emscripten/include/c++/v1/__ranges/from_range.h +33 -0
  1178. package/dist/emscripten/include/c++/v1/__ranges/iota_view.h +423 -0
  1179. package/dist/emscripten/include/c++/v1/__ranges/istream_view.h +141 -0
  1180. package/dist/emscripten/include/c++/v1/__ranges/join_view.h +429 -0
  1181. package/dist/emscripten/include/c++/v1/__ranges/join_with_view.h +460 -0
  1182. package/dist/emscripten/include/c++/v1/__ranges/lazy_split_view.h +442 -0
  1183. package/dist/emscripten/include/c++/v1/__ranges/movable_box.h +247 -0
  1184. package/dist/emscripten/include/c++/v1/__ranges/non_propagating_cache.h +103 -0
  1185. package/dist/emscripten/include/c++/v1/__ranges/owning_view.h +116 -0
  1186. package/dist/emscripten/include/c++/v1/__ranges/range_adaptor.h +99 -0
  1187. package/dist/emscripten/include/c++/v1/__ranges/rbegin.h +120 -0
  1188. package/dist/emscripten/include/c++/v1/__ranges/ref_view.h +89 -0
  1189. package/dist/emscripten/include/c++/v1/__ranges/rend.h +123 -0
  1190. package/dist/emscripten/include/c++/v1/__ranges/repeat_view.h +274 -0
  1191. package/dist/emscripten/include/c++/v1/__ranges/reverse_view.h +204 -0
  1192. package/dist/emscripten/include/c++/v1/__ranges/single_view.h +112 -0
  1193. package/dist/emscripten/include/c++/v1/__ranges/size.h +138 -0
  1194. package/dist/emscripten/include/c++/v1/__ranges/split_view.h +232 -0
  1195. package/dist/emscripten/include/c++/v1/__ranges/subrange.h +274 -0
  1196. package/dist/emscripten/include/c++/v1/__ranges/take_view.h +368 -0
  1197. package/dist/emscripten/include/c++/v1/__ranges/take_while_view.h +170 -0
  1198. package/dist/emscripten/include/c++/v1/__ranges/to.h +248 -0
  1199. package/dist/emscripten/include/c++/v1/__ranges/transform_view.h +419 -0
  1200. package/dist/emscripten/include/c++/v1/__ranges/view_interface.h +170 -0
  1201. package/dist/emscripten/include/c++/v1/__ranges/views.h +35 -0
  1202. package/dist/emscripten/include/c++/v1/__ranges/zip_transform_view.h +357 -0
  1203. package/dist/emscripten/include/c++/v1/__ranges/zip_view.h +499 -0
  1204. package/dist/emscripten/include/c++/v1/__split_buffer +859 -0
  1205. package/dist/emscripten/include/c++/v1/__std_mbstate_t.h +29 -0
  1206. package/dist/emscripten/include/c++/v1/__stop_token/atomic_unique_lock.h +140 -0
  1207. package/dist/emscripten/include/c++/v1/__stop_token/intrusive_list_view.h +85 -0
  1208. package/dist/emscripten/include/c++/v1/__stop_token/intrusive_shared_ptr.h +135 -0
  1209. package/dist/emscripten/include/c++/v1/__stop_token/stop_callback.h +102 -0
  1210. package/dist/emscripten/include/c++/v1/__stop_token/stop_source.h +91 -0
  1211. package/dist/emscripten/include/c++/v1/__stop_token/stop_state.h +236 -0
  1212. package/dist/emscripten/include/c++/v1/__stop_token/stop_token.h +63 -0
  1213. package/dist/emscripten/include/c++/v1/__string/char_traits.h +557 -0
  1214. package/dist/emscripten/include/c++/v1/__string/constexpr_c_functions.h +236 -0
  1215. package/dist/emscripten/include/c++/v1/__string/extern_template_lists.h +94 -0
  1216. package/dist/emscripten/include/c++/v1/__support/ibm/gettod_zos.h +52 -0
  1217. package/dist/emscripten/include/c++/v1/__support/ibm/locale_mgmt_zos.h +53 -0
  1218. package/dist/emscripten/include/c++/v1/__support/ibm/nanosleep.h +55 -0
  1219. package/dist/emscripten/include/c++/v1/__support/xlocale/__nop_locale_mgmt.h +33 -0
  1220. package/dist/emscripten/include/c++/v1/__support/xlocale/__posix_l_fallback.h +91 -0
  1221. package/dist/emscripten/include/c++/v1/__support/xlocale/__strtonum_fallback.h +37 -0
  1222. package/dist/emscripten/include/c++/v1/__system_error/errc.h +266 -0
  1223. package/dist/emscripten/include/c++/v1/__system_error/error_category.h +75 -0
  1224. package/dist/emscripten/include/c++/v1/__system_error/error_code.h +142 -0
  1225. package/dist/emscripten/include/c++/v1/__system_error/error_condition.h +129 -0
  1226. package/dist/emscripten/include/c++/v1/__system_error/system_error.h +57 -0
  1227. package/dist/emscripten/include/c++/v1/__system_error/throw_system_error.h +25 -0
  1228. package/dist/emscripten/include/c++/v1/__thread/formatter.h +80 -0
  1229. package/dist/emscripten/include/c++/v1/__thread/id.h +121 -0
  1230. package/dist/emscripten/include/c++/v1/__thread/jthread.h +136 -0
  1231. package/dist/emscripten/include/c++/v1/__thread/poll_with_backoff.h +86 -0
  1232. package/dist/emscripten/include/c++/v1/__thread/support/c11.h +191 -0
  1233. package/dist/emscripten/include/c++/v1/__thread/support/external.h +21 -0
  1234. package/dist/emscripten/include/c++/v1/__thread/support/pthread.h +221 -0
  1235. package/dist/emscripten/include/c++/v1/__thread/support/windows.h +131 -0
  1236. package/dist/emscripten/include/c++/v1/__thread/support.h +123 -0
  1237. package/dist/emscripten/include/c++/v1/__thread/this_thread.h +79 -0
  1238. package/dist/emscripten/include/c++/v1/__thread/thread.h +268 -0
  1239. package/dist/emscripten/include/c++/v1/__thread/timed_backoff_policy.h +45 -0
  1240. package/dist/emscripten/include/c++/v1/__tree +2359 -0
  1241. package/dist/emscripten/include/c++/v1/__tuple/find_index.h +62 -0
  1242. package/dist/emscripten/include/c++/v1/__tuple/ignore.h +39 -0
  1243. package/dist/emscripten/include/c++/v1/__tuple/sfinae_helpers.h +99 -0
  1244. package/dist/emscripten/include/c++/v1/__tuple/tuple_element.h +46 -0
  1245. package/dist/emscripten/include/c++/v1/__tuple/tuple_like.h +42 -0
  1246. package/dist/emscripten/include/c++/v1/__tuple/tuple_like_no_subrange.h +61 -0
  1247. package/dist/emscripten/include/c++/v1/__tuple/tuple_size.h +70 -0
  1248. package/dist/emscripten/include/c++/v1/__tuple/tuple_transform.h +45 -0
  1249. package/dist/emscripten/include/c++/v1/__type_traits/add_cv_quals.h +52 -0
  1250. package/dist/emscripten/include/c++/v1/__type_traits/add_pointer.h +65 -0
  1251. package/dist/emscripten/include/c++/v1/__type_traits/add_reference.h +58 -0
  1252. package/dist/emscripten/include/c++/v1/__type_traits/aligned_storage.h +61 -0
  1253. package/dist/emscripten/include/c++/v1/__type_traits/aligned_union.h +50 -0
  1254. package/dist/emscripten/include/c++/v1/__type_traits/alignment_of.h +32 -0
  1255. package/dist/emscripten/include/c++/v1/__type_traits/common_reference.h +202 -0
  1256. package/dist/emscripten/include/c++/v1/__type_traits/common_type.h +117 -0
  1257. package/dist/emscripten/include/c++/v1/__type_traits/conditional.h +64 -0
  1258. package/dist/emscripten/include/c++/v1/__type_traits/conjunction.h +70 -0
  1259. package/dist/emscripten/include/c++/v1/__type_traits/container_traits.h +46 -0
  1260. package/dist/emscripten/include/c++/v1/__type_traits/copy_cv.h +51 -0
  1261. package/dist/emscripten/include/c++/v1/__type_traits/copy_cvref.h +45 -0
  1262. package/dist/emscripten/include/c++/v1/__type_traits/datasizeof.h +50 -0
  1263. package/dist/emscripten/include/c++/v1/__type_traits/decay.h +40 -0
  1264. package/dist/emscripten/include/c++/v1/__type_traits/dependent_type.h +25 -0
  1265. package/dist/emscripten/include/c++/v1/__type_traits/desugars_to.h +73 -0
  1266. package/dist/emscripten/include/c++/v1/__type_traits/detected_or.h +36 -0
  1267. package/dist/emscripten/include/c++/v1/__type_traits/disjunction.h +58 -0
  1268. package/dist/emscripten/include/c++/v1/__type_traits/enable_if.h +43 -0
  1269. package/dist/emscripten/include/c++/v1/__type_traits/extent.h +54 -0
  1270. package/dist/emscripten/include/c++/v1/__type_traits/has_unique_object_representation.h +35 -0
  1271. package/dist/emscripten/include/c++/v1/__type_traits/has_virtual_destructor.h +32 -0
  1272. package/dist/emscripten/include/c++/v1/__type_traits/integer_traits.h +73 -0
  1273. package/dist/emscripten/include/c++/v1/__type_traits/integral_constant.h +44 -0
  1274. package/dist/emscripten/include/c++/v1/__type_traits/invoke.h +401 -0
  1275. package/dist/emscripten/include/c++/v1/__type_traits/is_abstract.h +31 -0
  1276. package/dist/emscripten/include/c++/v1/__type_traits/is_aggregate.h +33 -0
  1277. package/dist/emscripten/include/c++/v1/__type_traits/is_allocator.h +33 -0
  1278. package/dist/emscripten/include/c++/v1/__type_traits/is_always_bitcastable.h +83 -0
  1279. package/dist/emscripten/include/c++/v1/__type_traits/is_arithmetic.h +34 -0
  1280. package/dist/emscripten/include/c++/v1/__type_traits/is_array.h +57 -0
  1281. package/dist/emscripten/include/c++/v1/__type_traits/is_assignable.h +50 -0
  1282. package/dist/emscripten/include/c++/v1/__type_traits/is_base_of.h +43 -0
  1283. package/dist/emscripten/include/c++/v1/__type_traits/is_callable.h +32 -0
  1284. package/dist/emscripten/include/c++/v1/__type_traits/is_char_like_type.h +30 -0
  1285. package/dist/emscripten/include/c++/v1/__type_traits/is_class.h +31 -0
  1286. package/dist/emscripten/include/c++/v1/__type_traits/is_compound.h +46 -0
  1287. package/dist/emscripten/include/c++/v1/__type_traits/is_const.h +31 -0
  1288. package/dist/emscripten/include/c++/v1/__type_traits/is_constant_evaluated.h +32 -0
  1289. package/dist/emscripten/include/c++/v1/__type_traits/is_constructible.h +58 -0
  1290. package/dist/emscripten/include/c++/v1/__type_traits/is_convertible.h +41 -0
  1291. package/dist/emscripten/include/c++/v1/__type_traits/is_core_convertible.h +54 -0
  1292. package/dist/emscripten/include/c++/v1/__type_traits/is_destructible.h +97 -0
  1293. package/dist/emscripten/include/c++/v1/__type_traits/is_empty.h +31 -0
  1294. package/dist/emscripten/include/c++/v1/__type_traits/is_enum.h +41 -0
  1295. package/dist/emscripten/include/c++/v1/__type_traits/is_equality_comparable.h +83 -0
  1296. package/dist/emscripten/include/c++/v1/__type_traits/is_execution_policy.h +59 -0
  1297. package/dist/emscripten/include/c++/v1/__type_traits/is_final.h +36 -0
  1298. package/dist/emscripten/include/c++/v1/__type_traits/is_floating_point.h +40 -0
  1299. package/dist/emscripten/include/c++/v1/__type_traits/is_function.h +31 -0
  1300. package/dist/emscripten/include/c++/v1/__type_traits/is_fundamental.h +48 -0
  1301. package/dist/emscripten/include/c++/v1/__type_traits/is_generic_transparent_comparator.h +30 -0
  1302. package/dist/emscripten/include/c++/v1/__type_traits/is_implicit_lifetime.h +35 -0
  1303. package/dist/emscripten/include/c++/v1/__type_traits/is_implicitly_default_constructible.h +46 -0
  1304. package/dist/emscripten/include/c++/v1/__type_traits/is_integral.h +74 -0
  1305. package/dist/emscripten/include/c++/v1/__type_traits/is_literal_type.h +34 -0
  1306. package/dist/emscripten/include/c++/v1/__type_traits/is_member_pointer.h +43 -0
  1307. package/dist/emscripten/include/c++/v1/__type_traits/is_nothrow_assignable.h +52 -0
  1308. package/dist/emscripten/include/c++/v1/__type_traits/is_nothrow_constructible.h +63 -0
  1309. package/dist/emscripten/include/c++/v1/__type_traits/is_nothrow_destructible.h +61 -0
  1310. package/dist/emscripten/include/c++/v1/__type_traits/is_null_pointer.h +37 -0
  1311. package/dist/emscripten/include/c++/v1/__type_traits/is_object.h +31 -0
  1312. package/dist/emscripten/include/c++/v1/__type_traits/is_pod.h +31 -0
  1313. package/dist/emscripten/include/c++/v1/__type_traits/is_pointer.h +31 -0
  1314. package/dist/emscripten/include/c++/v1/__type_traits/is_polymorphic.h +31 -0
  1315. package/dist/emscripten/include/c++/v1/__type_traits/is_primary_template.h +32 -0
  1316. package/dist/emscripten/include/c++/v1/__type_traits/is_reference.h +68 -0
  1317. package/dist/emscripten/include/c++/v1/__type_traits/is_reference_wrapper.h +32 -0
  1318. package/dist/emscripten/include/c++/v1/__type_traits/is_referenceable.h +34 -0
  1319. package/dist/emscripten/include/c++/v1/__type_traits/is_same.h +44 -0
  1320. package/dist/emscripten/include/c++/v1/__type_traits/is_scalar.h +69 -0
  1321. package/dist/emscripten/include/c++/v1/__type_traits/is_signed.h +52 -0
  1322. package/dist/emscripten/include/c++/v1/__type_traits/is_specialization.h +41 -0
  1323. package/dist/emscripten/include/c++/v1/__type_traits/is_standard_layout.h +31 -0
  1324. package/dist/emscripten/include/c++/v1/__type_traits/is_swappable.h +106 -0
  1325. package/dist/emscripten/include/c++/v1/__type_traits/is_trivial.h +35 -0
  1326. package/dist/emscripten/include/c++/v1/__type_traits/is_trivially_assignable.h +56 -0
  1327. package/dist/emscripten/include/c++/v1/__type_traits/is_trivially_constructible.h +64 -0
  1328. package/dist/emscripten/include/c++/v1/__type_traits/is_trivially_copyable.h +35 -0
  1329. package/dist/emscripten/include/c++/v1/__type_traits/is_trivially_destructible.h +47 -0
  1330. package/dist/emscripten/include/c++/v1/__type_traits/is_trivially_lexicographically_comparable.h +63 -0
  1331. package/dist/emscripten/include/c++/v1/__type_traits/is_trivially_relocatable.h +44 -0
  1332. package/dist/emscripten/include/c++/v1/__type_traits/is_union.h +31 -0
  1333. package/dist/emscripten/include/c++/v1/__type_traits/is_unqualified.h +25 -0
  1334. package/dist/emscripten/include/c++/v1/__type_traits/is_unsigned.h +52 -0
  1335. package/dist/emscripten/include/c++/v1/__type_traits/is_valid_expansion.h +31 -0
  1336. package/dist/emscripten/include/c++/v1/__type_traits/is_void.h +31 -0
  1337. package/dist/emscripten/include/c++/v1/__type_traits/is_volatile.h +31 -0
  1338. package/dist/emscripten/include/c++/v1/__type_traits/is_within_lifetime.h +29 -0
  1339. package/dist/emscripten/include/c++/v1/__type_traits/lazy.h +25 -0
  1340. package/dist/emscripten/include/c++/v1/__type_traits/make_32_64_or_128_bit.h +49 -0
  1341. package/dist/emscripten/include/c++/v1/__type_traits/make_const_lvalue_ref.h +26 -0
  1342. package/dist/emscripten/include/c++/v1/__type_traits/make_signed.h +84 -0
  1343. package/dist/emscripten/include/c++/v1/__type_traits/make_transparent.h +52 -0
  1344. package/dist/emscripten/include/c++/v1/__type_traits/make_unsigned.h +94 -0
  1345. package/dist/emscripten/include/c++/v1/__type_traits/maybe_const.h +26 -0
  1346. package/dist/emscripten/include/c++/v1/__type_traits/nat.h +31 -0
  1347. package/dist/emscripten/include/c++/v1/__type_traits/negation.h +33 -0
  1348. package/dist/emscripten/include/c++/v1/__type_traits/promote.h +43 -0
  1349. package/dist/emscripten/include/c++/v1/__type_traits/rank.h +52 -0
  1350. package/dist/emscripten/include/c++/v1/__type_traits/reference_constructs_from_temporary.h +38 -0
  1351. package/dist/emscripten/include/c++/v1/__type_traits/reference_converts_from_temporary.h +35 -0
  1352. package/dist/emscripten/include/c++/v1/__type_traits/remove_all_extents.h +40 -0
  1353. package/dist/emscripten/include/c++/v1/__type_traits/remove_const.h +49 -0
  1354. package/dist/emscripten/include/c++/v1/__type_traits/remove_const_ref.h +27 -0
  1355. package/dist/emscripten/include/c++/v1/__type_traits/remove_cv.h +40 -0
  1356. package/dist/emscripten/include/c++/v1/__type_traits/remove_cvref.h +45 -0
  1357. package/dist/emscripten/include/c++/v1/__type_traits/remove_extent.h +40 -0
  1358. package/dist/emscripten/include/c++/v1/__type_traits/remove_pointer.h +53 -0
  1359. package/dist/emscripten/include/c++/v1/__type_traits/remove_reference.h +47 -0
  1360. package/dist/emscripten/include/c++/v1/__type_traits/remove_volatile.h +49 -0
  1361. package/dist/emscripten/include/c++/v1/__type_traits/result_of.h +43 -0
  1362. package/dist/emscripten/include/c++/v1/__type_traits/strip_signature.h +81 -0
  1363. package/dist/emscripten/include/c++/v1/__type_traits/type_identity.h +39 -0
  1364. package/dist/emscripten/include/c++/v1/__type_traits/type_list.h +47 -0
  1365. package/dist/emscripten/include/c++/v1/__type_traits/underlying_type.h +51 -0
  1366. package/dist/emscripten/include/c++/v1/__type_traits/unwrap_ref.h +51 -0
  1367. package/dist/emscripten/include/c++/v1/__type_traits/void_t.h +30 -0
  1368. package/dist/emscripten/include/c++/v1/__undef_macros +28 -0
  1369. package/dist/emscripten/include/c++/v1/__utility/as_const.h +32 -0
  1370. package/dist/emscripten/include/c++/v1/__utility/as_lvalue.h +37 -0
  1371. package/dist/emscripten/include/c++/v1/__utility/auto_cast.h +22 -0
  1372. package/dist/emscripten/include/c++/v1/__utility/cmp.h +93 -0
  1373. package/dist/emscripten/include/c++/v1/__utility/convert_to_integral.h +68 -0
  1374. package/dist/emscripten/include/c++/v1/__utility/declval.h +38 -0
  1375. package/dist/emscripten/include/c++/v1/__utility/default_three_way_comparator.h +70 -0
  1376. package/dist/emscripten/include/c++/v1/__utility/element_count.h +27 -0
  1377. package/dist/emscripten/include/c++/v1/__utility/empty.h +24 -0
  1378. package/dist/emscripten/include/c++/v1/__utility/exception_guard.h +143 -0
  1379. package/dist/emscripten/include/c++/v1/__utility/exchange.h +41 -0
  1380. package/dist/emscripten/include/c++/v1/__utility/forward.h +38 -0
  1381. package/dist/emscripten/include/c++/v1/__utility/forward_like.h +63 -0
  1382. package/dist/emscripten/include/c++/v1/__utility/in_place.h +64 -0
  1383. package/dist/emscripten/include/c++/v1/__utility/integer_sequence.h +105 -0
  1384. package/dist/emscripten/include/c++/v1/__utility/is_pointer_in_range.h +70 -0
  1385. package/dist/emscripten/include/c++/v1/__utility/is_valid_range.h +37 -0
  1386. package/dist/emscripten/include/c++/v1/__utility/lazy_synth_three_way_comparator.h +120 -0
  1387. package/dist/emscripten/include/c++/v1/__utility/move.h +49 -0
  1388. package/dist/emscripten/include/c++/v1/__utility/no_destroy.h +53 -0
  1389. package/dist/emscripten/include/c++/v1/__utility/pair.h +689 -0
  1390. package/dist/emscripten/include/c++/v1/__utility/piecewise_construct.h +32 -0
  1391. package/dist/emscripten/include/c++/v1/__utility/priority_tag.h +28 -0
  1392. package/dist/emscripten/include/c++/v1/__utility/private_constructor_tag.h +28 -0
  1393. package/dist/emscripten/include/c++/v1/__utility/rel_ops.h +46 -0
  1394. package/dist/emscripten/include/c++/v1/__utility/scope_guard.h +57 -0
  1395. package/dist/emscripten/include/c++/v1/__utility/small_buffer.h +101 -0
  1396. package/dist/emscripten/include/c++/v1/__utility/swap.h +60 -0
  1397. package/dist/emscripten/include/c++/v1/__utility/to_underlying.h +38 -0
  1398. package/dist/emscripten/include/c++/v1/__utility/try_key_extraction.h +114 -0
  1399. package/dist/emscripten/include/c++/v1/__utility/unreachable.h +34 -0
  1400. package/dist/emscripten/include/c++/v1/__variant/monostate.h +66 -0
  1401. package/dist/emscripten/include/c++/v1/__vector/comparison.h +71 -0
  1402. package/dist/emscripten/include/c++/v1/__vector/container_traits.h +41 -0
  1403. package/dist/emscripten/include/c++/v1/__vector/erase.h +50 -0
  1404. package/dist/emscripten/include/c++/v1/__vector/pmr.h +33 -0
  1405. package/dist/emscripten/include/c++/v1/__vector/swap.h +29 -0
  1406. package/dist/emscripten/include/c++/v1/__vector/vector.h +1449 -0
  1407. package/dist/emscripten/include/c++/v1/__vector/vector_bool.h +1115 -0
  1408. package/dist/emscripten/include/c++/v1/__vector/vector_bool_formatter.h +49 -0
  1409. package/dist/emscripten/include/c++/v1/__verbose_abort +54 -0
  1410. package/dist/emscripten/include/c++/v1/__verbose_trap +36 -0
  1411. package/dist/emscripten/include/c++/v1/algorithm +2071 -0
  1412. package/dist/emscripten/include/c++/v1/any +581 -0
  1413. package/dist/emscripten/include/c++/v1/array +609 -0
  1414. package/dist/emscripten/include/c++/v1/atomic +643 -0
  1415. package/dist/emscripten/include/c++/v1/barrier +203 -0
  1416. package/dist/emscripten/include/c++/v1/bit +101 -0
  1417. package/dist/emscripten/include/c++/v1/bitset +982 -0
  1418. package/dist/emscripten/include/c++/v1/cassert +35 -0
  1419. package/dist/emscripten/include/c++/v1/ccomplex +35 -0
  1420. package/dist/emscripten/include/c++/v1/cctype +131 -0
  1421. package/dist/emscripten/include/c++/v1/cerrno +52 -0
  1422. package/dist/emscripten/include/c++/v1/cfenv +95 -0
  1423. package/dist/emscripten/include/c++/v1/cfloat +92 -0
  1424. package/dist/emscripten/include/c++/v1/charconv +121 -0
  1425. package/dist/emscripten/include/c++/v1/chrono +1176 -0
  1426. package/dist/emscripten/include/c++/v1/cinttypes +275 -0
  1427. package/dist/emscripten/include/c++/v1/ciso646 +33 -0
  1428. package/dist/emscripten/include/c++/v1/climits +53 -0
  1429. package/dist/emscripten/include/c++/v1/clocale +60 -0
  1430. package/dist/emscripten/include/c++/v1/cmath +620 -0
  1431. package/dist/emscripten/include/c++/v1/codecvt +606 -0
  1432. package/dist/emscripten/include/c++/v1/compare +177 -0
  1433. package/dist/emscripten/include/c++/v1/complex +1494 -0
  1434. package/dist/emscripten/include/c++/v1/complex.h +36 -0
  1435. package/dist/emscripten/include/c++/v1/concepts +174 -0
  1436. package/dist/emscripten/include/c++/v1/condition_variable +368 -0
  1437. package/dist/emscripten/include/c++/v1/coroutine +72 -0
  1438. package/dist/emscripten/include/c++/v1/csetjmp +59 -0
  1439. package/dist/emscripten/include/c++/v1/csignal +69 -0
  1440. package/dist/emscripten/include/c++/v1/cstdalign +52 -0
  1441. package/dist/emscripten/include/c++/v1/cstdarg +59 -0
  1442. package/dist/emscripten/include/c++/v1/cstdbool +40 -0
  1443. package/dist/emscripten/include/c++/v1/cstddef +63 -0
  1444. package/dist/emscripten/include/c++/v1/cstdint +198 -0
  1445. package/dist/emscripten/include/c++/v1/cstdio +179 -0
  1446. package/dist/emscripten/include/c++/v1/cstdlib +159 -0
  1447. package/dist/emscripten/include/c++/v1/cstring +109 -0
  1448. package/dist/emscripten/include/c++/v1/ctgmath +37 -0
  1449. package/dist/emscripten/include/c++/v1/ctime +91 -0
  1450. package/dist/emscripten/include/c++/v1/ctype.h +65 -0
  1451. package/dist/emscripten/include/c++/v1/cuchar +80 -0
  1452. package/dist/emscripten/include/c++/v1/cwchar +266 -0
  1453. package/dist/emscripten/include/c++/v1/cwctype +102 -0
  1454. package/dist/emscripten/include/c++/v1/cxxabi.h +197 -0
  1455. package/dist/emscripten/include/c++/v1/deque +2548 -0
  1456. package/dist/emscripten/include/c++/v1/errno.h +403 -0
  1457. package/dist/emscripten/include/c++/v1/exception +105 -0
  1458. package/dist/emscripten/include/c++/v1/execution +163 -0
  1459. package/dist/emscripten/include/c++/v1/expected +60 -0
  1460. package/dist/emscripten/include/c++/v1/experimental/__simd/aligned_tag.h +75 -0
  1461. package/dist/emscripten/include/c++/v1/experimental/__simd/declaration.h +88 -0
  1462. package/dist/emscripten/include/c++/v1/experimental/__simd/reference.h +192 -0
  1463. package/dist/emscripten/include/c++/v1/experimental/__simd/scalar.h +102 -0
  1464. package/dist/emscripten/include/c++/v1/experimental/__simd/simd.h +155 -0
  1465. package/dist/emscripten/include/c++/v1/experimental/__simd/simd_mask.h +97 -0
  1466. package/dist/emscripten/include/c++/v1/experimental/__simd/traits.h +75 -0
  1467. package/dist/emscripten/include/c++/v1/experimental/__simd/utility.h +103 -0
  1468. package/dist/emscripten/include/c++/v1/experimental/__simd/vec_ext.h +130 -0
  1469. package/dist/emscripten/include/c++/v1/experimental/iterator +140 -0
  1470. package/dist/emscripten/include/c++/v1/experimental/memory +205 -0
  1471. package/dist/emscripten/include/c++/v1/experimental/propagate_const +497 -0
  1472. package/dist/emscripten/include/c++/v1/experimental/simd +96 -0
  1473. package/dist/emscripten/include/c++/v1/experimental/type_traits +161 -0
  1474. package/dist/emscripten/include/c++/v1/experimental/utility +54 -0
  1475. package/dist/emscripten/include/c++/v1/ext/__hash +85 -0
  1476. package/dist/emscripten/include/c++/v1/ext/hash_map +835 -0
  1477. package/dist/emscripten/include/c++/v1/ext/hash_set +582 -0
  1478. package/dist/emscripten/include/c++/v1/fenv.h +118 -0
  1479. package/dist/emscripten/include/c++/v1/filesystem +581 -0
  1480. package/dist/emscripten/include/c++/v1/flat_map +744 -0
  1481. package/dist/emscripten/include/c++/v1/flat_set +620 -0
  1482. package/dist/emscripten/include/c++/v1/float.h +99 -0
  1483. package/dist/emscripten/include/c++/v1/format +264 -0
  1484. package/dist/emscripten/include/c++/v1/forward_list +1622 -0
  1485. package/dist/emscripten/include/c++/v1/fstream +1642 -0
  1486. package/dist/emscripten/include/c++/v1/functional +609 -0
  1487. package/dist/emscripten/include/c++/v1/future +2075 -0
  1488. package/dist/emscripten/include/c++/v1/initializer_list +113 -0
  1489. package/dist/emscripten/include/c++/v1/inttypes.h +268 -0
  1490. package/dist/emscripten/include/c++/v1/iomanip +576 -0
  1491. package/dist/emscripten/include/c++/v1/ios +898 -0
  1492. package/dist/emscripten/include/c++/v1/iosfwd +191 -0
  1493. package/dist/emscripten/include/c++/v1/iostream +72 -0
  1494. package/dist/emscripten/include/c++/v1/istream +1427 -0
  1495. package/dist/emscripten/include/c++/v1/iterator +769 -0
  1496. package/dist/emscripten/include/c++/v1/latch +137 -0
  1497. package/dist/emscripten/include/c++/v1/limits +528 -0
  1498. package/dist/emscripten/include/c++/v1/list +1833 -0
  1499. package/dist/emscripten/include/c++/v1/locale +226 -0
  1500. package/dist/emscripten/include/c++/v1/map +2183 -0
  1501. package/dist/emscripten/include/c++/v1/math.h +534 -0
  1502. package/dist/emscripten/include/c++/v1/mdspan +470 -0
  1503. package/dist/emscripten/include/c++/v1/memory +1008 -0
  1504. package/dist/emscripten/include/c++/v1/memory_resource +81 -0
  1505. package/dist/emscripten/include/c++/v1/module.modulemap +2485 -0
  1506. package/dist/emscripten/include/c++/v1/module.modulemap.in +2485 -0
  1507. package/dist/emscripten/include/c++/v1/mutex +524 -0
  1508. package/dist/emscripten/include/c++/v1/new +124 -0
  1509. package/dist/emscripten/include/c++/v1/numbers +169 -0
  1510. package/dist/emscripten/include/c++/v1/numeric +212 -0
  1511. package/dist/emscripten/include/c++/v1/optional +1822 -0
  1512. package/dist/emscripten/include/c++/v1/ostream +215 -0
  1513. package/dist/emscripten/include/c++/v1/print +411 -0
  1514. package/dist/emscripten/include/c++/v1/queue +981 -0
  1515. package/dist/emscripten/include/c++/v1/random +1746 -0
  1516. package/dist/emscripten/include/c++/v1/ranges +517 -0
  1517. package/dist/emscripten/include/c++/v1/ratio +499 -0
  1518. package/dist/emscripten/include/c++/v1/regex +5848 -0
  1519. package/dist/emscripten/include/c++/v1/scoped_allocator +582 -0
  1520. package/dist/emscripten/include/c++/v1/semaphore +189 -0
  1521. package/dist/emscripten/include/c++/v1/set +1554 -0
  1522. package/dist/emscripten/include/c++/v1/shared_mutex +448 -0
  1523. package/dist/emscripten/include/c++/v1/source_location +90 -0
  1524. package/dist/emscripten/include/c++/v1/span +662 -0
  1525. package/dist/emscripten/include/c++/v1/sstream +1303 -0
  1526. package/dist/emscripten/include/c++/v1/stack +387 -0
  1527. package/dist/emscripten/include/c++/v1/stdatomic.h +247 -0
  1528. package/dist/emscripten/include/c++/v1/stddef.h +48 -0
  1529. package/dist/emscripten/include/c++/v1/stdexcept +292 -0
  1530. package/dist/emscripten/include/c++/v1/stdio.h +121 -0
  1531. package/dist/emscripten/include/c++/v1/stdlib.h +135 -0
  1532. package/dist/emscripten/include/c++/v1/stop_token +61 -0
  1533. package/dist/emscripten/include/c++/v1/streambuf +445 -0
  1534. package/dist/emscripten/include/c++/v1/string +4039 -0
  1535. package/dist/emscripten/include/c++/v1/string.h +115 -0
  1536. package/dist/emscripten/include/c++/v1/string_view +984 -0
  1537. package/dist/emscripten/include/c++/v1/strstream +363 -0
  1538. package/dist/emscripten/include/c++/v1/syncstream +523 -0
  1539. package/dist/emscripten/include/c++/v1/system_error +176 -0
  1540. package/dist/emscripten/include/c++/v1/tgmath.h +39 -0
  1541. package/dist/emscripten/include/c++/v1/thread +133 -0
  1542. package/dist/emscripten/include/c++/v1/tuple +1477 -0
  1543. package/dist/emscripten/include/c++/v1/type_traits +575 -0
  1544. package/dist/emscripten/include/c++/v1/typeindex +113 -0
  1545. package/dist/emscripten/include/c++/v1/typeinfo +402 -0
  1546. package/dist/emscripten/include/c++/v1/uchar.h +60 -0
  1547. package/dist/emscripten/include/c++/v1/unordered_map +2359 -0
  1548. package/dist/emscripten/include/c++/v1/unordered_set +1826 -0
  1549. package/dist/emscripten/include/c++/v1/utility +330 -0
  1550. package/dist/emscripten/include/c++/v1/valarray +3318 -0
  1551. package/dist/emscripten/include/c++/v1/variant +1654 -0
  1552. package/dist/emscripten/include/c++/v1/vector +375 -0
  1553. package/dist/emscripten/include/c++/v1/version +636 -0
  1554. package/dist/emscripten/include/c++/v1/wchar.h +207 -0
  1555. package/dist/emscripten/include/c++/v1/wctype.h +94 -0
  1556. package/dist/emscripten/include/compat/arm_neon.h +148070 -0
  1557. package/dist/emscripten/include/compat/avx2intrin.h +2016 -0
  1558. package/dist/emscripten/include/compat/avxintrin.h +2219 -0
  1559. package/dist/emscripten/include/compat/emmintrin.h +1515 -0
  1560. package/dist/emscripten/include/compat/fmaintrin.h +445 -0
  1561. package/dist/emscripten/include/compat/immintrin.h +46 -0
  1562. package/dist/emscripten/include/compat/malloc.h +48 -0
  1563. package/dist/emscripten/include/compat/math.h +14 -0
  1564. package/dist/emscripten/include/compat/netdb.h +22 -0
  1565. package/dist/emscripten/include/compat/nmmintrin.h +42 -0
  1566. package/dist/emscripten/include/compat/pmmintrin.h +88 -0
  1567. package/dist/emscripten/include/compat/smmintrin.h +477 -0
  1568. package/dist/emscripten/include/compat/stdarg.h +16 -0
  1569. package/dist/emscripten/include/compat/stdlib.h +16 -0
  1570. package/dist/emscripten/include/compat/string.h +17 -0
  1571. package/dist/emscripten/include/compat/sys/random.h +16 -0
  1572. package/dist/emscripten/include/compat/sys/socketvar.h +14 -0
  1573. package/dist/emscripten/include/compat/sys/stat.h +20 -0
  1574. package/dist/emscripten/include/compat/sys/timeb.h +35 -0
  1575. package/dist/emscripten/include/compat/sys/unistd.h +1 -0
  1576. package/dist/emscripten/include/compat/time.h +18 -0
  1577. package/dist/emscripten/include/compat/tmmintrin.h +156 -0
  1578. package/dist/emscripten/include/compat/xlocale.h +21 -0
  1579. package/dist/emscripten/include/compat/xmmintrin.h +714 -0
  1580. package/dist/emscripten/include/complex.h +133 -0
  1581. package/dist/emscripten/include/cpio.h +29 -0
  1582. package/dist/emscripten/include/crypt.h +20 -0
  1583. package/dist/emscripten/include/ctype.h +77 -0
  1584. package/dist/emscripten/include/dirent.h +87 -0
  1585. package/dist/emscripten/include/dlfcn.h +46 -0
  1586. package/dist/emscripten/include/elf.h +3445 -0
  1587. package/dist/emscripten/include/emscripten/atomic.h +323 -0
  1588. package/dist/emscripten/include/emscripten/bind.h +2079 -0
  1589. package/dist/emscripten/include/emscripten/console.h +61 -0
  1590. package/dist/emscripten/include/emscripten/dom_pk_codes.h +188 -0
  1591. package/dist/emscripten/include/emscripten/em_asm.h +301 -0
  1592. package/dist/emscripten/include/emscripten/em_js.h +91 -0
  1593. package/dist/emscripten/include/emscripten/em_macros.h +53 -0
  1594. package/dist/emscripten/include/emscripten/em_math.h +82 -0
  1595. package/dist/emscripten/include/emscripten/em_types.h +52 -0
  1596. package/dist/emscripten/include/emscripten/emmalloc.h +132 -0
  1597. package/dist/emscripten/include/emscripten/emscripten.h +200 -0
  1598. package/dist/emscripten/include/emscripten/epoll.h +78 -0
  1599. package/dist/emscripten/include/emscripten/eventloop.h +35 -0
  1600. package/dist/emscripten/include/emscripten/exports.h +23 -0
  1601. package/dist/emscripten/include/emscripten/fetch.h +238 -0
  1602. package/dist/emscripten/include/emscripten/fiber.h +57 -0
  1603. package/dist/emscripten/include/emscripten/heap.h +58 -0
  1604. package/dist/emscripten/include/emscripten/html5.h +479 -0
  1605. package/dist/emscripten/include/emscripten/html5_webgl.h +212 -0
  1606. package/dist/emscripten/include/emscripten/key_codes.h +213 -0
  1607. package/dist/emscripten/include/emscripten/posix_socket.h +13 -0
  1608. package/dist/emscripten/include/emscripten/promise.h +158 -0
  1609. package/dist/emscripten/include/emscripten/proxying.h +313 -0
  1610. package/dist/emscripten/include/emscripten/stack.h +49 -0
  1611. package/dist/emscripten/include/emscripten/syscalls.h +129 -0
  1612. package/dist/emscripten/include/emscripten/threading.h +96 -0
  1613. package/dist/emscripten/include/emscripten/threading_legacy.h +241 -0
  1614. package/dist/emscripten/include/emscripten/threading_primitives.h +217 -0
  1615. package/dist/emscripten/include/emscripten/trace.h +104 -0
  1616. package/dist/emscripten/include/emscripten/val.h +920 -0
  1617. package/dist/emscripten/include/emscripten/version.h +12 -0
  1618. package/dist/emscripten/include/emscripten/wasm_worker.h +130 -0
  1619. package/dist/emscripten/include/emscripten/wasmfs.h +123 -0
  1620. package/dist/emscripten/include/emscripten/webaudio.h +205 -0
  1621. package/dist/emscripten/include/emscripten/websocket.h +136 -0
  1622. package/dist/emscripten/include/emscripten/wget.h +44 -0
  1623. package/dist/emscripten/include/emscripten/wire.h +692 -0
  1624. package/dist/emscripten/include/emscripten.h +1 -0
  1625. package/dist/emscripten/include/endian.h +80 -0
  1626. package/dist/emscripten/include/err.h +25 -0
  1627. package/dist/emscripten/include/errno.h +27 -0
  1628. package/dist/emscripten/include/fakesdl/SDL.h +1 -0
  1629. package/dist/emscripten/include/fakesdl/SDL_assert.h +1 -0
  1630. package/dist/emscripten/include/fakesdl/SDL_atomic.h +1 -0
  1631. package/dist/emscripten/include/fakesdl/SDL_audio.h +1 -0
  1632. package/dist/emscripten/include/fakesdl/SDL_blendmode.h +1 -0
  1633. package/dist/emscripten/include/fakesdl/SDL_clipboard.h +1 -0
  1634. package/dist/emscripten/include/fakesdl/SDL_compat.h +1 -0
  1635. package/dist/emscripten/include/fakesdl/SDL_config.h +1 -0
  1636. package/dist/emscripten/include/fakesdl/SDL_copying.h +1 -0
  1637. package/dist/emscripten/include/fakesdl/SDL_cpuinfo.h +1 -0
  1638. package/dist/emscripten/include/fakesdl/SDL_endian.h +1 -0
  1639. package/dist/emscripten/include/fakesdl/SDL_error.h +1 -0
  1640. package/dist/emscripten/include/fakesdl/SDL_events.h +1 -0
  1641. package/dist/emscripten/include/fakesdl/SDL_gesture.h +1 -0
  1642. package/dist/emscripten/include/fakesdl/SDL_gfxPrimitives.h +1 -0
  1643. package/dist/emscripten/include/fakesdl/SDL_haptic.h +1 -0
  1644. package/dist/emscripten/include/fakesdl/SDL_hints.h +1 -0
  1645. package/dist/emscripten/include/fakesdl/SDL_image.h +1 -0
  1646. package/dist/emscripten/include/fakesdl/SDL_input.h +1 -0
  1647. package/dist/emscripten/include/fakesdl/SDL_joystick.h +1 -0
  1648. package/dist/emscripten/include/fakesdl/SDL_keyboard.h +1 -0
  1649. package/dist/emscripten/include/fakesdl/SDL_keycode.h +1 -0
  1650. package/dist/emscripten/include/fakesdl/SDL_loadso.h +1 -0
  1651. package/dist/emscripten/include/fakesdl/SDL_log.h +1 -0
  1652. package/dist/emscripten/include/fakesdl/SDL_main.h +1 -0
  1653. package/dist/emscripten/include/fakesdl/SDL_mixer.h +1 -0
  1654. package/dist/emscripten/include/fakesdl/SDL_mouse.h +1 -0
  1655. package/dist/emscripten/include/fakesdl/SDL_mutex.h +1 -0
  1656. package/dist/emscripten/include/fakesdl/SDL_name.h +1 -0
  1657. package/dist/emscripten/include/fakesdl/SDL_opengl.h +1 -0
  1658. package/dist/emscripten/include/fakesdl/SDL_opengles.h +1 -0
  1659. package/dist/emscripten/include/fakesdl/SDL_opengles2.h +1 -0
  1660. package/dist/emscripten/include/fakesdl/SDL_pixels.h +1 -0
  1661. package/dist/emscripten/include/fakesdl/SDL_platform.h +1 -0
  1662. package/dist/emscripten/include/fakesdl/SDL_power.h +1 -0
  1663. package/dist/emscripten/include/fakesdl/SDL_quit.h +1 -0
  1664. package/dist/emscripten/include/fakesdl/SDL_rect.h +1 -0
  1665. package/dist/emscripten/include/fakesdl/SDL_render.h +1 -0
  1666. package/dist/emscripten/include/fakesdl/SDL_revision.h +1 -0
  1667. package/dist/emscripten/include/fakesdl/SDL_rotozoom.h +1 -0
  1668. package/dist/emscripten/include/fakesdl/SDL_rwops.h +1 -0
  1669. package/dist/emscripten/include/fakesdl/SDL_scancode.h +1 -0
  1670. package/dist/emscripten/include/fakesdl/SDL_shape.h +1 -0
  1671. package/dist/emscripten/include/fakesdl/SDL_stdinc.h +1 -0
  1672. package/dist/emscripten/include/fakesdl/SDL_surface.h +1 -0
  1673. package/dist/emscripten/include/fakesdl/SDL_syswm.h +1 -0
  1674. package/dist/emscripten/include/fakesdl/SDL_thread.h +1 -0
  1675. package/dist/emscripten/include/fakesdl/SDL_timer.h +1 -0
  1676. package/dist/emscripten/include/fakesdl/SDL_touch.h +1 -0
  1677. package/dist/emscripten/include/fakesdl/SDL_ttf.h +1 -0
  1678. package/dist/emscripten/include/fakesdl/SDL_types.h +1 -0
  1679. package/dist/emscripten/include/fakesdl/SDL_version.h +1 -0
  1680. package/dist/emscripten/include/fakesdl/SDL_video.h +1 -0
  1681. package/dist/emscripten/include/fcntl.h +228 -0
  1682. package/dist/emscripten/include/features.h +47 -0
  1683. package/dist/emscripten/include/fenv.h +28 -0
  1684. package/dist/emscripten/include/float.h +52 -0
  1685. package/dist/emscripten/include/fmtmsg.h +47 -0
  1686. package/dist/emscripten/include/fnmatch.h +24 -0
  1687. package/dist/emscripten/include/ftw.h +41 -0
  1688. package/dist/emscripten/include/getopt.h +30 -0
  1689. package/dist/emscripten/include/glob.h +52 -0
  1690. package/dist/emscripten/include/grp.h +53 -0
  1691. package/dist/emscripten/include/iconv.h +24 -0
  1692. package/dist/emscripten/include/ifaddrs.h +35 -0
  1693. package/dist/emscripten/include/inttypes.h +234 -0
  1694. package/dist/emscripten/include/iso646.h +20 -0
  1695. package/dist/emscripten/include/langinfo.h +98 -0
  1696. package/dist/emscripten/include/lastlog.h +1 -0
  1697. package/dist/emscripten/include/libgen.h +15 -0
  1698. package/dist/emscripten/include/libintl.h +33 -0
  1699. package/dist/emscripten/include/libunwind.h +1409 -0
  1700. package/dist/emscripten/include/libunwind.modulemap +13 -0
  1701. package/dist/emscripten/include/limits.h +173 -0
  1702. package/dist/emscripten/include/link.h +53 -0
  1703. package/dist/emscripten/include/locale.h +88 -0
  1704. package/dist/emscripten/include/mach-o/compact_unwind_encoding.h +477 -0
  1705. package/dist/emscripten/include/malloc.h +25 -0
  1706. package/dist/emscripten/include/math.h +442 -0
  1707. package/dist/emscripten/include/memory.h +1 -0
  1708. package/dist/emscripten/include/mimalloc/atomic.h +564 -0
  1709. package/dist/emscripten/include/mimalloc/bits.h +354 -0
  1710. package/dist/emscripten/include/mimalloc/internal.h +1515 -0
  1711. package/dist/emscripten/include/mimalloc/prim-tls.h +424 -0
  1712. package/dist/emscripten/include/mimalloc/prim.h +136 -0
  1713. package/dist/emscripten/include/mimalloc/track.h +150 -0
  1714. package/dist/emscripten/include/mimalloc/types.h +803 -0
  1715. package/dist/emscripten/include/mimalloc-new-delete.h +66 -0
  1716. package/dist/emscripten/include/mimalloc-override.h +68 -0
  1717. package/dist/emscripten/include/mimalloc-stats.h +171 -0
  1718. package/dist/emscripten/include/mimalloc.h +738 -0
  1719. package/dist/emscripten/include/mntent.h +43 -0
  1720. package/dist/emscripten/include/monetary.h +23 -0
  1721. package/dist/emscripten/include/mqueue.h +41 -0
  1722. package/dist/emscripten/include/net/ethernet.h +55 -0
  1723. package/dist/emscripten/include/net/if.h +141 -0
  1724. package/dist/emscripten/include/net/if_arp.h +142 -0
  1725. package/dist/emscripten/include/net/route.h +124 -0
  1726. package/dist/emscripten/include/netdb.h +157 -0
  1727. package/dist/emscripten/include/netinet/ether.h +22 -0
  1728. package/dist/emscripten/include/netinet/icmp6.h +305 -0
  1729. package/dist/emscripten/include/netinet/if_ether.h +149 -0
  1730. package/dist/emscripten/include/netinet/igmp.h +45 -0
  1731. package/dist/emscripten/include/netinet/in.h +418 -0
  1732. package/dist/emscripten/include/netinet/in_systm.h +9 -0
  1733. package/dist/emscripten/include/netinet/ip.h +199 -0
  1734. package/dist/emscripten/include/netinet/ip6.h +141 -0
  1735. package/dist/emscripten/include/netinet/ip_icmp.h +193 -0
  1736. package/dist/emscripten/include/netinet/tcp.h +305 -0
  1737. package/dist/emscripten/include/netinet/udp.h +46 -0
  1738. package/dist/emscripten/include/netpacket/packet.h +62 -0
  1739. package/dist/emscripten/include/nl_types.h +22 -0
  1740. package/dist/emscripten/include/omp.h +603 -0
  1741. package/dist/emscripten/include/ompx.h +229 -0
  1742. package/dist/emscripten/include/paths.h +31 -0
  1743. package/dist/emscripten/include/poll.h +58 -0
  1744. package/dist/emscripten/include/profile/InstrProfData.inc +1001 -0
  1745. package/dist/emscripten/include/profile/MIBEntryDef.inc +55 -0
  1746. package/dist/emscripten/include/profile/MemProfData.inc +269 -0
  1747. package/dist/emscripten/include/profile/instr_prof_interface.h +88 -0
  1748. package/dist/emscripten/include/pthread.h +244 -0
  1749. package/dist/emscripten/include/pty.h +18 -0
  1750. package/dist/emscripten/include/pwd.h +50 -0
  1751. package/dist/emscripten/include/regex.h +62 -0
  1752. package/dist/emscripten/include/resolv.h +142 -0
  1753. package/dist/emscripten/include/sanitizer/allocator_interface.h +106 -0
  1754. package/dist/emscripten/include/sanitizer/asan_interface.h +348 -0
  1755. package/dist/emscripten/include/sanitizer/common_interface_defs.h +544 -0
  1756. package/dist/emscripten/include/sanitizer/coverage_interface.h +36 -0
  1757. package/dist/emscripten/include/sanitizer/dfsan_interface.h +220 -0
  1758. package/dist/emscripten/include/sanitizer/hwasan_interface.h +109 -0
  1759. package/dist/emscripten/include/sanitizer/linux_syscall_hooks.h +3112 -0
  1760. package/dist/emscripten/include/sanitizer/lsan_interface.h +89 -0
  1761. package/dist/emscripten/include/sanitizer/memprof_interface.h +72 -0
  1762. package/dist/emscripten/include/sanitizer/msan_interface.h +135 -0
  1763. package/dist/emscripten/include/sanitizer/netbsd_syscall_hooks.h +5005 -0
  1764. package/dist/emscripten/include/sanitizer/nsan_interface.h +75 -0
  1765. package/dist/emscripten/include/sanitizer/rtsan_interface.h +75 -0
  1766. package/dist/emscripten/include/sanitizer/scudo_interface.h +38 -0
  1767. package/dist/emscripten/include/sanitizer/tsan_interface.h +316 -0
  1768. package/dist/emscripten/include/sanitizer/tsan_interface_atomic.h +223 -0
  1769. package/dist/emscripten/include/sanitizer/ubsan_interface.h +34 -0
  1770. package/dist/emscripten/include/sched.h +147 -0
  1771. package/dist/emscripten/include/scsi/scsi.h +150 -0
  1772. package/dist/emscripten/include/scsi/scsi_ioctl.h +11 -0
  1773. package/dist/emscripten/include/scsi/sg.h +129 -0
  1774. package/dist/emscripten/include/search.h +63 -0
  1775. package/dist/emscripten/include/semaphore.h +39 -0
  1776. package/dist/emscripten/include/setjmp.h +55 -0
  1777. package/dist/emscripten/include/shadow.h +43 -0
  1778. package/dist/emscripten/include/signal.h +304 -0
  1779. package/dist/emscripten/include/spawn.h +83 -0
  1780. package/dist/emscripten/include/stdalign.h +20 -0
  1781. package/dist/emscripten/include/stdarg.h +21 -0
  1782. package/dist/emscripten/include/stdbool.h +14 -0
  1783. package/dist/emscripten/include/stdc-predef.h +18 -0
  1784. package/dist/emscripten/include/stddef.h +27 -0
  1785. package/dist/emscripten/include/stdint.h +122 -0
  1786. package/dist/emscripten/include/stdio.h +241 -0
  1787. package/dist/emscripten/include/stdio_ext.h +34 -0
  1788. package/dist/emscripten/include/stdlib.h +179 -0
  1789. package/dist/emscripten/include/stdnoreturn.h +7 -0
  1790. package/dist/emscripten/include/string.h +104 -0
  1791. package/dist/emscripten/include/strings.h +40 -0
  1792. package/dist/emscripten/include/stropts.h +139 -0
  1793. package/dist/emscripten/include/sys/acct.h +72 -0
  1794. package/dist/emscripten/include/sys/dir.h +2 -0
  1795. package/dist/emscripten/include/sys/epoll.h +81 -0
  1796. package/dist/emscripten/include/sys/errno.h +2 -0
  1797. package/dist/emscripten/include/sys/fcntl.h +2 -0
  1798. package/dist/emscripten/include/sys/file.h +21 -0
  1799. package/dist/emscripten/include/sys/ioctl.h +120 -0
  1800. package/dist/emscripten/include/sys/ipc.h +42 -0
  1801. package/dist/emscripten/include/sys/membarrier.h +21 -0
  1802. package/dist/emscripten/include/sys/mman.h +156 -0
  1803. package/dist/emscripten/include/sys/mount.h +75 -0
  1804. package/dist/emscripten/include/sys/msg.h +53 -0
  1805. package/dist/emscripten/include/sys/mtio.h +188 -0
  1806. package/dist/emscripten/include/sys/param.h +35 -0
  1807. package/dist/emscripten/include/sys/poll.h +2 -0
  1808. package/dist/emscripten/include/sys/procfs.h +63 -0
  1809. package/dist/emscripten/include/sys/random.h +20 -0
  1810. package/dist/emscripten/include/sys/reg.h +18 -0
  1811. package/dist/emscripten/include/sys/resource.h +116 -0
  1812. package/dist/emscripten/include/sys/select.h +46 -0
  1813. package/dist/emscripten/include/sys/sem.h +72 -0
  1814. package/dist/emscripten/include/sys/shm.h +70 -0
  1815. package/dist/emscripten/include/sys/signal.h +2 -0
  1816. package/dist/emscripten/include/sys/socket.h +415 -0
  1817. package/dist/emscripten/include/sys/stat.h +207 -0
  1818. package/dist/emscripten/include/sys/statfs.h +32 -0
  1819. package/dist/emscripten/include/sys/statvfs.h +57 -0
  1820. package/dist/emscripten/include/sys/stropts.h +1 -0
  1821. package/dist/emscripten/include/sys/syscall.h +6 -0
  1822. package/dist/emscripten/include/sys/sysinfo.h +36 -0
  1823. package/dist/emscripten/include/sys/syslog.h +1 -0
  1824. package/dist/emscripten/include/sys/sysmacros.h +15 -0
  1825. package/dist/emscripten/include/sys/termios.h +2 -0
  1826. package/dist/emscripten/include/sys/time.h +76 -0
  1827. package/dist/emscripten/include/sys/timeb.h +28 -0
  1828. package/dist/emscripten/include/sys/times.h +25 -0
  1829. package/dist/emscripten/include/sys/ttydefaults.h +34 -0
  1830. package/dist/emscripten/include/sys/types.h +85 -0
  1831. package/dist/emscripten/include/sys/ucontext.h +1 -0
  1832. package/dist/emscripten/include/sys/uio.h +56 -0
  1833. package/dist/emscripten/include/sys/un.h +31 -0
  1834. package/dist/emscripten/include/sys/user.h +25 -0
  1835. package/dist/emscripten/include/sys/utsname.h +29 -0
  1836. package/dist/emscripten/include/sys/vfs.h +1 -0
  1837. package/dist/emscripten/include/sys/wait.h +67 -0
  1838. package/dist/emscripten/include/sys/xattr.h +32 -0
  1839. package/dist/emscripten/include/syscall.h +1 -0
  1840. package/dist/emscripten/include/sysexits.h +21 -0
  1841. package/dist/emscripten/include/syslog.h +100 -0
  1842. package/dist/emscripten/include/tar.h +33 -0
  1843. package/dist/emscripten/include/termios.h +50 -0
  1844. package/dist/emscripten/include/tgmath.h +270 -0
  1845. package/dist/emscripten/include/threads.h +93 -0
  1846. package/dist/emscripten/include/time.h +168 -0
  1847. package/dist/emscripten/include/uchar.h +29 -0
  1848. package/dist/emscripten/include/ucontext.h +25 -0
  1849. package/dist/emscripten/include/ulimit.h +17 -0
  1850. package/dist/emscripten/include/unistd.h +521 -0
  1851. package/dist/emscripten/include/unwind.h +211 -0
  1852. package/dist/emscripten/include/unwind_arm_ehabi.h +173 -0
  1853. package/dist/emscripten/include/unwind_itanium.h +76 -0
  1854. package/dist/emscripten/include/unwind_wasm.h +30 -0
  1855. package/dist/emscripten/include/utime.h +29 -0
  1856. package/dist/emscripten/include/utmp.h +52 -0
  1857. package/dist/emscripten/include/utmpx.h +67 -0
  1858. package/dist/emscripten/include/uuid/uuid.h +35 -0
  1859. package/dist/emscripten/include/values.h +39 -0
  1860. package/dist/emscripten/include/wait.h +2 -0
  1861. package/dist/emscripten/include/wasi/api.h +2760 -0
  1862. package/dist/emscripten/include/wasi/wasi-helpers.h +31 -0
  1863. package/dist/emscripten/include/wasm_simd128.h +10 -0
  1864. package/dist/emscripten/include/wchar.h +207 -0
  1865. package/dist/emscripten/include/wctype.h +79 -0
  1866. package/dist/emscripten/include/webgl/webgl1.h +148 -0
  1867. package/dist/emscripten/include/webgl/webgl1_ext.h +554 -0
  1868. package/dist/emscripten/include/webgl/webgl2.h +134 -0
  1869. package/dist/emscripten/include/webgl/webgl2_ext.h +73 -0
  1870. package/dist/emscripten/include/webgl/webgl_api.h +11 -0
  1871. package/dist/emscripten/include/wordexp.h +41 -0
  1872. package/dist/licenses/crossbind-LICENSE +21 -0
  1873. package/dist/licenses/emscripten-LICENSE +102 -0
  1874. package/dist/licenses/llvm-LICENSE.TXT +311 -0
  1875. package/dist/licenses/musl-COPYRIGHT +193 -0
  1876. package/dist/licenses/pcre2-LICENCE.md +103 -0
  1877. package/dist/licenses/swig-COPYRIGHT +115 -0
  1878. package/dist/licenses/swig-LICENSE +22 -0
  1879. package/dist/licenses/swig-LICENSE-GPL +674 -0
  1880. package/dist/licenses/swig-LICENSE-UNIVERSITIES +95 -0
  1881. package/dist/manifest.json +20 -0
  1882. package/dist/predefined.h +447 -0
  1883. package/dist/swig/share/swig/4.4.0/allkw.swg +34 -0
  1884. package/dist/swig/share/swig/4.4.0/attribute.i +21 -0
  1885. package/dist/swig/share/swig/4.4.0/c/boost_shared_ptr.i +5 -0
  1886. package/dist/swig/share/swig/4.4.0/c/c.swg +359 -0
  1887. package/dist/swig/share/swig/4.4.0/c/cdata.i +29 -0
  1888. package/dist/swig/share/swig/4.4.0/c/cexcept.swg +109 -0
  1889. package/dist/swig/share/swig/4.4.0/c/cheader.swg +20 -0
  1890. package/dist/swig/share/swig/4.4.0/c/clabels.swg +23 -0
  1891. package/dist/swig/share/swig/4.4.0/c/std_common.i +4 -0
  1892. package/dist/swig/share/swig/4.4.0/c/std_except.i +20 -0
  1893. package/dist/swig/share/swig/4.4.0/c/std_map.i +61 -0
  1894. package/dist/swig/share/swig/4.4.0/c/std_pair.i +24 -0
  1895. package/dist/swig/share/swig/4.4.0/c/std_set.i +48 -0
  1896. package/dist/swig/share/swig/4.4.0/c/std_shared_ptr.i +84 -0
  1897. package/dist/swig/share/swig/4.4.0/c/std_string.i +90 -0
  1898. package/dist/swig/share/swig/4.4.0/c/std_vector.i +91 -0
  1899. package/dist/swig/share/swig/4.4.0/c/stl.i +12 -0
  1900. package/dist/swig/share/swig/4.4.0/c/typemaps.i +12 -0
  1901. package/dist/swig/share/swig/4.4.0/carrays.i +122 -0
  1902. package/dist/swig/share/swig/4.4.0/cdata.i +50 -0
  1903. package/dist/swig/share/swig/4.4.0/cmalloc.i +110 -0
  1904. package/dist/swig/share/swig/4.4.0/constraints.i +217 -0
  1905. package/dist/swig/share/swig/4.4.0/cpointer.i +186 -0
  1906. package/dist/swig/share/swig/4.4.0/csharp/argcargv.i +76 -0
  1907. package/dist/swig/share/swig/4.4.0/csharp/arrays_csharp.i +202 -0
  1908. package/dist/swig/share/swig/4.4.0/csharp/boost_intrusive_ptr.i +517 -0
  1909. package/dist/swig/share/swig/4.4.0/csharp/boost_shared_ptr.i +323 -0
  1910. package/dist/swig/share/swig/4.4.0/csharp/cdata.i +124 -0
  1911. package/dist/swig/share/swig/4.4.0/csharp/complex.i +5 -0
  1912. package/dist/swig/share/swig/4.4.0/csharp/csharp.swg +1261 -0
  1913. package/dist/swig/share/swig/4.4.0/csharp/csharphead.swg +374 -0
  1914. package/dist/swig/share/swig/4.4.0/csharp/csharpkw.swg +97 -0
  1915. package/dist/swig/share/swig/4.4.0/csharp/director.swg +50 -0
  1916. package/dist/swig/share/swig/4.4.0/csharp/enums.swg +86 -0
  1917. package/dist/swig/share/swig/4.4.0/csharp/enumsimple.swg +88 -0
  1918. package/dist/swig/share/swig/4.4.0/csharp/enumtypesafe.swg +130 -0
  1919. package/dist/swig/share/swig/4.4.0/csharp/std_array.i +250 -0
  1920. package/dist/swig/share/swig/4.4.0/csharp/std_auto_ptr.i +38 -0
  1921. package/dist/swig/share/swig/4.4.0/csharp/std_common.i +5 -0
  1922. package/dist/swig/share/swig/4.4.0/csharp/std_complex.i +95 -0
  1923. package/dist/swig/share/swig/4.4.0/csharp/std_deque.i +1 -0
  1924. package/dist/swig/share/swig/4.4.0/csharp/std_except.i +32 -0
  1925. package/dist/swig/share/swig/4.4.0/csharp/std_list.i +521 -0
  1926. package/dist/swig/share/swig/4.4.0/csharp/std_map.i +310 -0
  1927. package/dist/swig/share/swig/4.4.0/csharp/std_pair.i +36 -0
  1928. package/dist/swig/share/swig/4.4.0/csharp/std_set.i +320 -0
  1929. package/dist/swig/share/swig/4.4.0/csharp/std_shared_ptr.i +2 -0
  1930. package/dist/swig/share/swig/4.4.0/csharp/std_string.i +111 -0
  1931. package/dist/swig/share/swig/4.4.0/csharp/std_string_view.i +116 -0
  1932. package/dist/swig/share/swig/4.4.0/csharp/std_unique_ptr.i +60 -0
  1933. package/dist/swig/share/swig/4.4.0/csharp/std_unordered_map.i +306 -0
  1934. package/dist/swig/share/swig/4.4.0/csharp/std_unordered_set.i +320 -0
  1935. package/dist/swig/share/swig/4.4.0/csharp/std_vector.i +415 -0
  1936. package/dist/swig/share/swig/4.4.0/csharp/std_wstring.i +146 -0
  1937. package/dist/swig/share/swig/4.4.0/csharp/stl.i +10 -0
  1938. package/dist/swig/share/swig/4.4.0/csharp/swiginterface.i +68 -0
  1939. package/dist/swig/share/swig/4.4.0/csharp/swigmove.i +16 -0
  1940. package/dist/swig/share/swig/4.4.0/csharp/swigtype_inout.i +34 -0
  1941. package/dist/swig/share/swig/4.4.0/csharp/typemaps.i +280 -0
  1942. package/dist/swig/share/swig/4.4.0/csharp/wchar.i +323 -0
  1943. package/dist/swig/share/swig/4.4.0/cstring.i +12 -0
  1944. package/dist/swig/share/swig/4.4.0/cwstring.i +11 -0
  1945. package/dist/swig/share/swig/4.4.0/d/argcargv.i +26 -0
  1946. package/dist/swig/share/swig/4.4.0/d/boost_shared_ptr.i +293 -0
  1947. package/dist/swig/share/swig/4.4.0/d/carrays.i +113 -0
  1948. package/dist/swig/share/swig/4.4.0/d/cdata.i +31 -0
  1949. package/dist/swig/share/swig/4.4.0/d/cpointer.i +171 -0
  1950. package/dist/swig/share/swig/4.4.0/d/d.swg +46 -0
  1951. package/dist/swig/share/swig/4.4.0/d/dclassgen.swg +172 -0
  1952. package/dist/swig/share/swig/4.4.0/d/ddirectives.swg +11 -0
  1953. package/dist/swig/share/swig/4.4.0/d/denums.swg +60 -0
  1954. package/dist/swig/share/swig/4.4.0/d/dexception.swg +30 -0
  1955. package/dist/swig/share/swig/4.4.0/d/dhead.swg +184 -0
  1956. package/dist/swig/share/swig/4.4.0/d/director.swg +49 -0
  1957. package/dist/swig/share/swig/4.4.0/d/dkw.swg +128 -0
  1958. package/dist/swig/share/swig/4.4.0/d/dmemberfunctionpointers.swg +94 -0
  1959. package/dist/swig/share/swig/4.4.0/d/doperators.swg +134 -0
  1960. package/dist/swig/share/swig/4.4.0/d/dprimitives.swg +170 -0
  1961. package/dist/swig/share/swig/4.4.0/d/dstrings.swg +73 -0
  1962. package/dist/swig/share/swig/4.4.0/d/dswigtype.swg +322 -0
  1963. package/dist/swig/share/swig/4.4.0/d/dvoid.swg +18 -0
  1964. package/dist/swig/share/swig/4.4.0/d/std_auto_ptr.i +42 -0
  1965. package/dist/swig/share/swig/4.4.0/d/std_common.i +5 -0
  1966. package/dist/swig/share/swig/4.4.0/d/std_deque.i +1 -0
  1967. package/dist/swig/share/swig/4.4.0/d/std_except.i +32 -0
  1968. package/dist/swig/share/swig/4.4.0/d/std_map.i +66 -0
  1969. package/dist/swig/share/swig/4.4.0/d/std_pair.i +36 -0
  1970. package/dist/swig/share/swig/4.4.0/d/std_shared_ptr.i +2 -0
  1971. package/dist/swig/share/swig/4.4.0/d/std_string.i +91 -0
  1972. package/dist/swig/share/swig/4.4.0/d/std_unique_ptr.i +69 -0
  1973. package/dist/swig/share/swig/4.4.0/d/std_vector.i +441 -0
  1974. package/dist/swig/share/swig/4.4.0/d/stl.i +10 -0
  1975. package/dist/swig/share/swig/4.4.0/d/swigmove.i +16 -0
  1976. package/dist/swig/share/swig/4.4.0/d/typemaps.i +261 -0
  1977. package/dist/swig/share/swig/4.4.0/d/wrapperloader.swg +302 -0
  1978. package/dist/swig/share/swig/4.4.0/director_common.swg +15 -0
  1979. package/dist/swig/share/swig/4.4.0/director_guard.swg +105 -0
  1980. package/dist/swig/share/swig/4.4.0/embind/boost_intrusive_ptr.i +0 -0
  1981. package/dist/swig/share/swig/4.4.0/embind/boost_shared_ptr.i +2 -0
  1982. package/dist/swig/share/swig/4.4.0/embind/embind.swg +105 -0
  1983. package/dist/swig/share/swig/4.4.0/embind/embind_factory.swg +12 -0
  1984. package/dist/swig/share/swig/4.4.0/embind/embind_listener.swg +6 -0
  1985. package/dist/swig/share/swig/4.4.0/embind/embind_pointer.swg +562 -0
  1986. package/dist/swig/share/swig/4.4.0/embind/embind_registration.swg +45 -0
  1987. package/dist/swig/share/swig/4.4.0/embind/std_common.i +1 -0
  1988. package/dist/swig/share/swig/4.4.0/embind/std_deque.i +1 -0
  1989. package/dist/swig/share/swig/4.4.0/embind/std_except.i +3 -0
  1990. package/dist/swig/share/swig/4.4.0/embind/std_map.i +21 -0
  1991. package/dist/swig/share/swig/4.4.0/embind/std_pair.i +32 -0
  1992. package/dist/swig/share/swig/4.4.0/embind/std_shared_ptr.i +2 -0
  1993. package/dist/swig/share/swig/4.4.0/embind/std_string.i +7 -0
  1994. package/dist/swig/share/swig/4.4.0/embind/std_vector.i +14 -0
  1995. package/dist/swig/share/swig/4.4.0/embind/std_wstring.i +3 -0
  1996. package/dist/swig/share/swig/4.4.0/embind/stl.i +10 -0
  1997. package/dist/swig/share/swig/4.4.0/embind/typemaps.i +0 -0
  1998. package/dist/swig/share/swig/4.4.0/embind/various.i +0 -0
  1999. package/dist/swig/share/swig/4.4.0/exception.i +308 -0
  2000. package/dist/swig/share/swig/4.4.0/go/argcargv.i +62 -0
  2001. package/dist/swig/share/swig/4.4.0/go/cdata.i +57 -0
  2002. package/dist/swig/share/swig/4.4.0/go/director.swg +80 -0
  2003. package/dist/swig/share/swig/4.4.0/go/exception.i +7 -0
  2004. package/dist/swig/share/swig/4.4.0/go/go.swg +784 -0
  2005. package/dist/swig/share/swig/4.4.0/go/gokw.swg +33 -0
  2006. package/dist/swig/share/swig/4.4.0/go/goruntime.swg +217 -0
  2007. package/dist/swig/share/swig/4.4.0/go/gostring.swg +29 -0
  2008. package/dist/swig/share/swig/4.4.0/go/std_array.i +43 -0
  2009. package/dist/swig/share/swig/4.4.0/go/std_common.i +4 -0
  2010. package/dist/swig/share/swig/4.4.0/go/std_deque.i +1 -0
  2011. package/dist/swig/share/swig/4.4.0/go/std_except.i +31 -0
  2012. package/dist/swig/share/swig/4.4.0/go/std_list.i +41 -0
  2013. package/dist/swig/share/swig/4.4.0/go/std_map.i +70 -0
  2014. package/dist/swig/share/swig/4.4.0/go/std_pair.i +36 -0
  2015. package/dist/swig/share/swig/4.4.0/go/std_string.i +162 -0
  2016. package/dist/swig/share/swig/4.4.0/go/std_vector.i +92 -0
  2017. package/dist/swig/share/swig/4.4.0/go/stl.i +10 -0
  2018. package/dist/swig/share/swig/4.4.0/go/swigmove.i +15 -0
  2019. package/dist/swig/share/swig/4.4.0/go/typemaps.i +298 -0
  2020. package/dist/swig/share/swig/4.4.0/guile/Makefile +3 -0
  2021. package/dist/swig/share/swig/4.4.0/guile/argcargv.i +44 -0
  2022. package/dist/swig/share/swig/4.4.0/guile/cdata.i +24 -0
  2023. package/dist/swig/share/swig/4.4.0/guile/common.scm +70 -0
  2024. package/dist/swig/share/swig/4.4.0/guile/cplusplus.i +22 -0
  2025. package/dist/swig/share/swig/4.4.0/guile/extra-install.list +2 -0
  2026. package/dist/swig/share/swig/4.4.0/guile/guile.i +33 -0
  2027. package/dist/swig/share/swig/4.4.0/guile/guile_scm.swg +46 -0
  2028. package/dist/swig/share/swig/4.4.0/guile/guile_scm_run.swg +525 -0
  2029. package/dist/swig/share/swig/4.4.0/guile/guilemain.i +39 -0
  2030. package/dist/swig/share/swig/4.4.0/guile/interpreter.i +59 -0
  2031. package/dist/swig/share/swig/4.4.0/guile/list-vector.i +487 -0
  2032. package/dist/swig/share/swig/4.4.0/guile/pointer-in-out.i +99 -0
  2033. package/dist/swig/share/swig/4.4.0/guile/ports.i +48 -0
  2034. package/dist/swig/share/swig/4.4.0/guile/std_auto_ptr.i +39 -0
  2035. package/dist/swig/share/swig/4.4.0/guile/std_common.i +25 -0
  2036. package/dist/swig/share/swig/4.4.0/guile/std_deque.i +1 -0
  2037. package/dist/swig/share/swig/4.4.0/guile/std_except.i +13 -0
  2038. package/dist/swig/share/swig/4.4.0/guile/std_map.i +280 -0
  2039. package/dist/swig/share/swig/4.4.0/guile/std_pair.i +867 -0
  2040. package/dist/swig/share/swig/4.4.0/guile/std_string.i +95 -0
  2041. package/dist/swig/share/swig/4.4.0/guile/std_unique_ptr.i +68 -0
  2042. package/dist/swig/share/swig/4.4.0/guile/std_vector.i +424 -0
  2043. package/dist/swig/share/swig/4.4.0/guile/stl.i +10 -0
  2044. package/dist/swig/share/swig/4.4.0/guile/swigmove.i +21 -0
  2045. package/dist/swig/share/swig/4.4.0/guile/swigrun.i +47 -0
  2046. package/dist/swig/share/swig/4.4.0/guile/typemaps.i +520 -0
  2047. package/dist/swig/share/swig/4.4.0/intrusive_ptr.i +58 -0
  2048. package/dist/swig/share/swig/4.4.0/inttypes.i +60 -0
  2049. package/dist/swig/share/swig/4.4.0/java/argcargv.i +36 -0
  2050. package/dist/swig/share/swig/4.4.0/java/arrays_java.i +398 -0
  2051. package/dist/swig/share/swig/4.4.0/java/boost_intrusive_ptr.i +484 -0
  2052. package/dist/swig/share/swig/4.4.0/java/boost_shared_ptr.i +337 -0
  2053. package/dist/swig/share/swig/4.4.0/java/cdata.i +78 -0
  2054. package/dist/swig/share/swig/4.4.0/java/director.swg +541 -0
  2055. package/dist/swig/share/swig/4.4.0/java/enums.swg +116 -0
  2056. package/dist/swig/share/swig/4.4.0/java/enumsimple.swg +71 -0
  2057. package/dist/swig/share/swig/4.4.0/java/enumtypesafe.swg +117 -0
  2058. package/dist/swig/share/swig/4.4.0/java/enumtypeunsafe.swg +72 -0
  2059. package/dist/swig/share/swig/4.4.0/java/java.swg +1508 -0
  2060. package/dist/swig/share/swig/4.4.0/java/javahead.swg +91 -0
  2061. package/dist/swig/share/swig/4.4.0/java/javakw.swg +70 -0
  2062. package/dist/swig/share/swig/4.4.0/java/std_array.i +62 -0
  2063. package/dist/swig/share/swig/4.4.0/java/std_auto_ptr.i +41 -0
  2064. package/dist/swig/share/swig/4.4.0/java/std_common.i +5 -0
  2065. package/dist/swig/share/swig/4.4.0/java/std_deque.i +1 -0
  2066. package/dist/swig/share/swig/4.4.0/java/std_except.i +32 -0
  2067. package/dist/swig/share/swig/4.4.0/java/std_list.i +220 -0
  2068. package/dist/swig/share/swig/4.4.0/java/std_map.i +215 -0
  2069. package/dist/swig/share/swig/4.4.0/java/std_pair.i +37 -0
  2070. package/dist/swig/share/swig/4.4.0/java/std_set.i +208 -0
  2071. package/dist/swig/share/swig/4.4.0/java/std_shared_ptr.i +2 -0
  2072. package/dist/swig/share/swig/4.4.0/java/std_string.i +121 -0
  2073. package/dist/swig/share/swig/4.4.0/java/std_string_view.i +138 -0
  2074. package/dist/swig/share/swig/4.4.0/java/std_unique_ptr.i +63 -0
  2075. package/dist/swig/share/swig/4.4.0/java/std_unordered_map.i +215 -0
  2076. package/dist/swig/share/swig/4.4.0/java/std_unordered_set.i +204 -0
  2077. package/dist/swig/share/swig/4.4.0/java/std_vector.i +205 -0
  2078. package/dist/swig/share/swig/4.4.0/java/std_wstring.i +180 -0
  2079. package/dist/swig/share/swig/4.4.0/java/stl.i +10 -0
  2080. package/dist/swig/share/swig/4.4.0/java/swiginterface.i +79 -0
  2081. package/dist/swig/share/swig/4.4.0/java/swigmove.i +16 -0
  2082. package/dist/swig/share/swig/4.4.0/java/typemaps.i +549 -0
  2083. package/dist/swig/share/swig/4.4.0/java/various.i +194 -0
  2084. package/dist/swig/share/swig/4.4.0/javascript/javascriptkw.swg +63 -0
  2085. package/dist/swig/share/swig/4.4.0/javascript/jsc/argcargv.i +67 -0
  2086. package/dist/swig/share/swig/4.4.0/javascript/jsc/arrays_javascript.i +94 -0
  2087. package/dist/swig/share/swig/4.4.0/javascript/jsc/ccomplex.i +27 -0
  2088. package/dist/swig/share/swig/4.4.0/javascript/jsc/cmalloc.i +1 -0
  2089. package/dist/swig/share/swig/4.4.0/javascript/jsc/complex.i +6 -0
  2090. package/dist/swig/share/swig/4.4.0/javascript/jsc/exception.i +1 -0
  2091. package/dist/swig/share/swig/4.4.0/javascript/jsc/factory.i +1 -0
  2092. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascript.swg +19 -0
  2093. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptcode.swg +444 -0
  2094. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptcomplex.swg +150 -0
  2095. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptfragments.swg +23 -0
  2096. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascripthelpers.swg +69 -0
  2097. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptinit.swg +112 -0
  2098. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptprimtypes.swg +192 -0
  2099. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptrun.swg +370 -0
  2100. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptruntime.swg +19 -0
  2101. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascriptstrings.swg +190 -0
  2102. package/dist/swig/share/swig/4.4.0/javascript/jsc/javascripttypemaps.swg +54 -0
  2103. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_auto_ptr.i +39 -0
  2104. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_common.i +5 -0
  2105. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_complex.i +26 -0
  2106. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_deque.i +1 -0
  2107. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_except.i +1 -0
  2108. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_map.i +72 -0
  2109. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_pair.i +36 -0
  2110. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_string.i +1 -0
  2111. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_unique_ptr.i +69 -0
  2112. package/dist/swig/share/swig/4.4.0/javascript/jsc/std_vector.i +99 -0
  2113. package/dist/swig/share/swig/4.4.0/javascript/jsc/stl.i +10 -0
  2114. package/dist/swig/share/swig/4.4.0/javascript/jsc/swigmove.i +1 -0
  2115. package/dist/swig/share/swig/4.4.0/javascript/jsc/typemaps.i +144 -0
  2116. package/dist/swig/share/swig/4.4.0/javascript/napi/argcargv.i +66 -0
  2117. package/dist/swig/share/swig/4.4.0/javascript/napi/arrays_javascript.i +88 -0
  2118. package/dist/swig/share/swig/4.4.0/javascript/napi/ccomplex.i +27 -0
  2119. package/dist/swig/share/swig/4.4.0/javascript/napi/cmalloc.i +1 -0
  2120. package/dist/swig/share/swig/4.4.0/javascript/napi/complex.i +6 -0
  2121. package/dist/swig/share/swig/4.4.0/javascript/napi/exception.i +1 -0
  2122. package/dist/swig/share/swig/4.4.0/javascript/napi/factory.i +1 -0
  2123. package/dist/swig/share/swig/4.4.0/javascript/napi/javascript.swg +17 -0
  2124. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptcode.swg +880 -0
  2125. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptcomplex.swg +120 -0
  2126. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptfragments.swg +23 -0
  2127. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptinit.swg +111 -0
  2128. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptprimtypes.swg +387 -0
  2129. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptrun.swg +448 -0
  2130. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptruntime.swg +39 -0
  2131. package/dist/swig/share/swig/4.4.0/javascript/napi/javascriptstrings.swg +80 -0
  2132. package/dist/swig/share/swig/4.4.0/javascript/napi/javascripttypemaps.swg +56 -0
  2133. package/dist/swig/share/swig/4.4.0/javascript/napi/nodejs_buffer.i +47 -0
  2134. package/dist/swig/share/swig/4.4.0/javascript/napi/std_auto_ptr.i +39 -0
  2135. package/dist/swig/share/swig/4.4.0/javascript/napi/std_common.i +5 -0
  2136. package/dist/swig/share/swig/4.4.0/javascript/napi/std_complex.i +26 -0
  2137. package/dist/swig/share/swig/4.4.0/javascript/napi/std_deque.i +1 -0
  2138. package/dist/swig/share/swig/4.4.0/javascript/napi/std_except.i +1 -0
  2139. package/dist/swig/share/swig/4.4.0/javascript/napi/std_map.i +71 -0
  2140. package/dist/swig/share/swig/4.4.0/javascript/napi/std_pair.i +35 -0
  2141. package/dist/swig/share/swig/4.4.0/javascript/napi/std_string.i +1 -0
  2142. package/dist/swig/share/swig/4.4.0/javascript/napi/std_unique_ptr.i +69 -0
  2143. package/dist/swig/share/swig/4.4.0/javascript/napi/std_vector.i +99 -0
  2144. package/dist/swig/share/swig/4.4.0/javascript/napi/stl.i +10 -0
  2145. package/dist/swig/share/swig/4.4.0/javascript/napi/swigmove.i +1 -0
  2146. package/dist/swig/share/swig/4.4.0/javascript/napi/typemaps.i +144 -0
  2147. package/dist/swig/share/swig/4.4.0/javascript/v8/argcargv.i +75 -0
  2148. package/dist/swig/share/swig/4.4.0/javascript/v8/arrays_javascript.i +86 -0
  2149. package/dist/swig/share/swig/4.4.0/javascript/v8/ccomplex.i +27 -0
  2150. package/dist/swig/share/swig/4.4.0/javascript/v8/cmalloc.i +1 -0
  2151. package/dist/swig/share/swig/4.4.0/javascript/v8/complex.i +6 -0
  2152. package/dist/swig/share/swig/4.4.0/javascript/v8/exception.i +1 -0
  2153. package/dist/swig/share/swig/4.4.0/javascript/v8/factory.i +1 -0
  2154. package/dist/swig/share/swig/4.4.0/javascript/v8/javascript.swg +19 -0
  2155. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptcode.swg +443 -0
  2156. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptcomplex.swg +128 -0
  2157. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptfragments.swg +23 -0
  2158. package/dist/swig/share/swig/4.4.0/javascript/v8/javascripthelpers.swg +87 -0
  2159. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptinit.swg +126 -0
  2160. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptprimtypes.swg +203 -0
  2161. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptrun.swg +456 -0
  2162. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptruntime.swg +46 -0
  2163. package/dist/swig/share/swig/4.4.0/javascript/v8/javascriptstrings.swg +62 -0
  2164. package/dist/swig/share/swig/4.4.0/javascript/v8/javascripttypemaps.swg +43 -0
  2165. package/dist/swig/share/swig/4.4.0/javascript/v8/std_auto_ptr.i +39 -0
  2166. package/dist/swig/share/swig/4.4.0/javascript/v8/std_common.i +5 -0
  2167. package/dist/swig/share/swig/4.4.0/javascript/v8/std_complex.i +26 -0
  2168. package/dist/swig/share/swig/4.4.0/javascript/v8/std_deque.i +1 -0
  2169. package/dist/swig/share/swig/4.4.0/javascript/v8/std_except.i +1 -0
  2170. package/dist/swig/share/swig/4.4.0/javascript/v8/std_map.i +71 -0
  2171. package/dist/swig/share/swig/4.4.0/javascript/v8/std_pair.i +35 -0
  2172. package/dist/swig/share/swig/4.4.0/javascript/v8/std_string.i +1 -0
  2173. package/dist/swig/share/swig/4.4.0/javascript/v8/std_unique_ptr.i +69 -0
  2174. package/dist/swig/share/swig/4.4.0/javascript/v8/std_vector.i +68 -0
  2175. package/dist/swig/share/swig/4.4.0/javascript/v8/stl.i +10 -0
  2176. package/dist/swig/share/swig/4.4.0/javascript/v8/swigmove.i +1 -0
  2177. package/dist/swig/share/swig/4.4.0/javascript/v8/typemaps.i +144 -0
  2178. package/dist/swig/share/swig/4.4.0/linkruntime.c +22 -0
  2179. package/dist/swig/share/swig/4.4.0/lua/_std_common.i +93 -0
  2180. package/dist/swig/share/swig/4.4.0/lua/argcargv.i +57 -0
  2181. package/dist/swig/share/swig/4.4.0/lua/carrays.i +8 -0
  2182. package/dist/swig/share/swig/4.4.0/lua/cdata.i +23 -0
  2183. package/dist/swig/share/swig/4.4.0/lua/factory.i +23 -0
  2184. package/dist/swig/share/swig/4.4.0/lua/lua.swg +266 -0
  2185. package/dist/swig/share/swig/4.4.0/lua/lua_fnptr.i +124 -0
  2186. package/dist/swig/share/swig/4.4.0/lua/luakw.swg +67 -0
  2187. package/dist/swig/share/swig/4.4.0/lua/luarun.swg +1966 -0
  2188. package/dist/swig/share/swig/4.4.0/lua/luaruntime.swg +104 -0
  2189. package/dist/swig/share/swig/4.4.0/lua/luatypemaps.swg +420 -0
  2190. package/dist/swig/share/swig/4.4.0/lua/std_auto_ptr.i +39 -0
  2191. package/dist/swig/share/swig/4.4.0/lua/std_common.i +5 -0
  2192. package/dist/swig/share/swig/4.4.0/lua/std_deque.i +1 -0
  2193. package/dist/swig/share/swig/4.4.0/lua/std_except.i +42 -0
  2194. package/dist/swig/share/swig/4.4.0/lua/std_map.i +70 -0
  2195. package/dist/swig/share/swig/4.4.0/lua/std_pair.i +26 -0
  2196. package/dist/swig/share/swig/4.4.0/lua/std_string.i +134 -0
  2197. package/dist/swig/share/swig/4.4.0/lua/std_string_view.i +50 -0
  2198. package/dist/swig/share/swig/4.4.0/lua/std_unique_ptr.i +69 -0
  2199. package/dist/swig/share/swig/4.4.0/lua/std_vector.i +140 -0
  2200. package/dist/swig/share/swig/4.4.0/lua/stl.i +10 -0
  2201. package/dist/swig/share/swig/4.4.0/lua/swigmove.i +20 -0
  2202. package/dist/swig/share/swig/4.4.0/lua/typemaps.i +554 -0
  2203. package/dist/swig/share/swig/4.4.0/lua/wchar.i +42 -0
  2204. package/dist/swig/share/swig/4.4.0/math.i +89 -0
  2205. package/dist/swig/share/swig/4.4.0/ocaml/carray.i +131 -0
  2206. package/dist/swig/share/swig/4.4.0/ocaml/cdata.i +19 -0
  2207. package/dist/swig/share/swig/4.4.0/ocaml/class.swg +67 -0
  2208. package/dist/swig/share/swig/4.4.0/ocaml/cstring.i +268 -0
  2209. package/dist/swig/share/swig/4.4.0/ocaml/director.swg +87 -0
  2210. package/dist/swig/share/swig/4.4.0/ocaml/extra-install.list +4 -0
  2211. package/dist/swig/share/swig/4.4.0/ocaml/ocaml.i +50 -0
  2212. package/dist/swig/share/swig/4.4.0/ocaml/ocaml.swg +341 -0
  2213. package/dist/swig/share/swig/4.4.0/ocaml/ocamlkw.swg +72 -0
  2214. package/dist/swig/share/swig/4.4.0/ocaml/ocamlrun.swg +605 -0
  2215. package/dist/swig/share/swig/4.4.0/ocaml/ocamlrundec.swg +123 -0
  2216. package/dist/swig/share/swig/4.4.0/ocaml/preamble.swg +17 -0
  2217. package/dist/swig/share/swig/4.4.0/ocaml/std_common.i +23 -0
  2218. package/dist/swig/share/swig/4.4.0/ocaml/std_complex.i +65 -0
  2219. package/dist/swig/share/swig/4.4.0/ocaml/std_deque.i +28 -0
  2220. package/dist/swig/share/swig/4.4.0/ocaml/std_except.i +23 -0
  2221. package/dist/swig/share/swig/4.4.0/ocaml/std_list.i +217 -0
  2222. package/dist/swig/share/swig/4.4.0/ocaml/std_map.i +70 -0
  2223. package/dist/swig/share/swig/4.4.0/ocaml/std_pair.i +36 -0
  2224. package/dist/swig/share/swig/4.4.0/ocaml/std_string.i +134 -0
  2225. package/dist/swig/share/swig/4.4.0/ocaml/std_vector.i +98 -0
  2226. package/dist/swig/share/swig/4.4.0/ocaml/stl.i +10 -0
  2227. package/dist/swig/share/swig/4.4.0/ocaml/swig.ml +166 -0
  2228. package/dist/swig/share/swig/4.4.0/ocaml/swig.mli +62 -0
  2229. package/dist/swig/share/swig/4.4.0/ocaml/swigmove.i +13 -0
  2230. package/dist/swig/share/swig/4.4.0/ocaml/swigp4.ml +135 -0
  2231. package/dist/swig/share/swig/4.4.0/ocaml/typecheck.i +197 -0
  2232. package/dist/swig/share/swig/4.4.0/ocaml/typemaps.i +44 -0
  2233. package/dist/swig/share/swig/4.4.0/ocaml/typeregister.swg +2 -0
  2234. package/dist/swig/share/swig/4.4.0/octave/argcargv.i +52 -0
  2235. package/dist/swig/share/swig/4.4.0/octave/attribute.i +1 -0
  2236. package/dist/swig/share/swig/4.4.0/octave/boost_shared_ptr.i +401 -0
  2237. package/dist/swig/share/swig/4.4.0/octave/carrays.i +5 -0
  2238. package/dist/swig/share/swig/4.4.0/octave/cmalloc.i +1 -0
  2239. package/dist/swig/share/swig/4.4.0/octave/director.swg +146 -0
  2240. package/dist/swig/share/swig/4.4.0/octave/exception.i +14 -0
  2241. package/dist/swig/share/swig/4.4.0/octave/extra-install.list +2 -0
  2242. package/dist/swig/share/swig/4.4.0/octave/factory.i +1 -0
  2243. package/dist/swig/share/swig/4.4.0/octave/implicit.i +7 -0
  2244. package/dist/swig/share/swig/4.4.0/octave/octave.swg +8 -0
  2245. package/dist/swig/share/swig/4.4.0/octave/octcomplex.swg +92 -0
  2246. package/dist/swig/share/swig/4.4.0/octave/octcontainer.swg +631 -0
  2247. package/dist/swig/share/swig/4.4.0/octave/octfragments.swg +1 -0
  2248. package/dist/swig/share/swig/4.4.0/octave/octheaders.hpp +133 -0
  2249. package/dist/swig/share/swig/4.4.0/octave/octiterators.swg +352 -0
  2250. package/dist/swig/share/swig/4.4.0/octave/octopers.swg +86 -0
  2251. package/dist/swig/share/swig/4.4.0/octave/octprimtypes.swg +259 -0
  2252. package/dist/swig/share/swig/4.4.0/octave/octrun.swg +1713 -0
  2253. package/dist/swig/share/swig/4.4.0/octave/octruntime.swg +428 -0
  2254. package/dist/swig/share/swig/4.4.0/octave/octstdcommon.swg +222 -0
  2255. package/dist/swig/share/swig/4.4.0/octave/octtypemaps.swg +99 -0
  2256. package/dist/swig/share/swig/4.4.0/octave/octuserdir.swg +72 -0
  2257. package/dist/swig/share/swig/4.4.0/octave/std_alloc.i +1 -0
  2258. package/dist/swig/share/swig/4.4.0/octave/std_auto_ptr.i +39 -0
  2259. package/dist/swig/share/swig/4.4.0/octave/std_basic_string.i +64 -0
  2260. package/dist/swig/share/swig/4.4.0/octave/std_char_traits.i +1 -0
  2261. package/dist/swig/share/swig/4.4.0/octave/std_common.i +72 -0
  2262. package/dist/swig/share/swig/4.4.0/octave/std_complex.i +25 -0
  2263. package/dist/swig/share/swig/4.4.0/octave/std_container.i +2 -0
  2264. package/dist/swig/share/swig/4.4.0/octave/std_deque.i +25 -0
  2265. package/dist/swig/share/swig/4.4.0/octave/std_except.i +1 -0
  2266. package/dist/swig/share/swig/4.4.0/octave/std_list.i +26 -0
  2267. package/dist/swig/share/swig/4.4.0/octave/std_map.i +157 -0
  2268. package/dist/swig/share/swig/4.4.0/octave/std_pair.i +147 -0
  2269. package/dist/swig/share/swig/4.4.0/octave/std_shared_ptr.i +2 -0
  2270. package/dist/swig/share/swig/4.4.0/octave/std_string.i +1 -0
  2271. package/dist/swig/share/swig/4.4.0/octave/std_unique_ptr.i +69 -0
  2272. package/dist/swig/share/swig/4.4.0/octave/std_vector.i +26 -0
  2273. package/dist/swig/share/swig/4.4.0/octave/std_wstring.i +1 -0
  2274. package/dist/swig/share/swig/4.4.0/octave/stl.i +10 -0
  2275. package/dist/swig/share/swig/4.4.0/octave/swigmove.i +1 -0
  2276. package/dist/swig/share/swig/4.4.0/octave/typemaps.i +1 -0
  2277. package/dist/swig/share/swig/4.4.0/perl5/Makefile.in +120 -0
  2278. package/dist/swig/share/swig/4.4.0/perl5/Makefile.pl +19 -0
  2279. package/dist/swig/share/swig/4.4.0/perl5/argcargv.i +30 -0
  2280. package/dist/swig/share/swig/4.4.0/perl5/attribute.i +1 -0
  2281. package/dist/swig/share/swig/4.4.0/perl5/carrays.i +1 -0
  2282. package/dist/swig/share/swig/4.4.0/perl5/cmalloc.i +1 -0
  2283. package/dist/swig/share/swig/4.4.0/perl5/cpointer.i +1 -0
  2284. package/dist/swig/share/swig/4.4.0/perl5/cstring.i +1 -0
  2285. package/dist/swig/share/swig/4.4.0/perl5/director.swg +317 -0
  2286. package/dist/swig/share/swig/4.4.0/perl5/exception.i +5 -0
  2287. package/dist/swig/share/swig/4.4.0/perl5/extra-install.list +2 -0
  2288. package/dist/swig/share/swig/4.4.0/perl5/factory.i +1 -0
  2289. package/dist/swig/share/swig/4.4.0/perl5/noembed.h +116 -0
  2290. package/dist/swig/share/swig/4.4.0/perl5/perl5.swg +42 -0
  2291. package/dist/swig/share/swig/4.4.0/perl5/perlerrors.swg +36 -0
  2292. package/dist/swig/share/swig/4.4.0/perl5/perlfragments.swg +23 -0
  2293. package/dist/swig/share/swig/4.4.0/perl5/perlhead.swg +94 -0
  2294. package/dist/swig/share/swig/4.4.0/perl5/perlinit.swg +78 -0
  2295. package/dist/swig/share/swig/4.4.0/perl5/perlkw.swg +251 -0
  2296. package/dist/swig/share/swig/4.4.0/perl5/perlmacros.swg +2 -0
  2297. package/dist/swig/share/swig/4.4.0/perl5/perlmain.i +77 -0
  2298. package/dist/swig/share/swig/4.4.0/perl5/perlopers.swg +54 -0
  2299. package/dist/swig/share/swig/4.4.0/perl5/perlprimtypes.swg +369 -0
  2300. package/dist/swig/share/swig/4.4.0/perl5/perlrun.swg +488 -0
  2301. package/dist/swig/share/swig/4.4.0/perl5/perlruntime.swg +8 -0
  2302. package/dist/swig/share/swig/4.4.0/perl5/perlstrings.swg +59 -0
  2303. package/dist/swig/share/swig/4.4.0/perl5/perltypemaps.swg +104 -0
  2304. package/dist/swig/share/swig/4.4.0/perl5/perluserdir.swg +2 -0
  2305. package/dist/swig/share/swig/4.4.0/perl5/reference.i +261 -0
  2306. package/dist/swig/share/swig/4.4.0/perl5/std_auto_ptr.i +39 -0
  2307. package/dist/swig/share/swig/4.4.0/perl5/std_common.i +28 -0
  2308. package/dist/swig/share/swig/4.4.0/perl5/std_deque.i +1 -0
  2309. package/dist/swig/share/swig/4.4.0/perl5/std_except.i +1 -0
  2310. package/dist/swig/share/swig/4.4.0/perl5/std_list.i +377 -0
  2311. package/dist/swig/share/swig/4.4.0/perl5/std_map.i +71 -0
  2312. package/dist/swig/share/swig/4.4.0/perl5/std_pair.i +36 -0
  2313. package/dist/swig/share/swig/4.4.0/perl5/std_string.i +2 -0
  2314. package/dist/swig/share/swig/4.4.0/perl5/std_string_view.i +2 -0
  2315. package/dist/swig/share/swig/4.4.0/perl5/std_unique_ptr.i +69 -0
  2316. package/dist/swig/share/swig/4.4.0/perl5/std_vector.i +592 -0
  2317. package/dist/swig/share/swig/4.4.0/perl5/stl.i +10 -0
  2318. package/dist/swig/share/swig/4.4.0/perl5/swigmove.i +1 -0
  2319. package/dist/swig/share/swig/4.4.0/perl5/typemaps.i +371 -0
  2320. package/dist/swig/share/swig/4.4.0/php/argcargv.i +38 -0
  2321. package/dist/swig/share/swig/4.4.0/php/cdata.i +24 -0
  2322. package/dist/swig/share/swig/4.4.0/php/const.i +103 -0
  2323. package/dist/swig/share/swig/4.4.0/php/director.swg +180 -0
  2324. package/dist/swig/share/swig/4.4.0/php/factory.i +109 -0
  2325. package/dist/swig/share/swig/4.4.0/php/php.swg +643 -0
  2326. package/dist/swig/share/swig/4.4.0/php/phpinit.swg +16 -0
  2327. package/dist/swig/share/swig/4.4.0/php/phpinterfaces.i +60 -0
  2328. package/dist/swig/share/swig/4.4.0/php/phpkw.swg +888 -0
  2329. package/dist/swig/share/swig/4.4.0/php/phppointers.i +42 -0
  2330. package/dist/swig/share/swig/4.4.0/php/phprun.swg +230 -0
  2331. package/dist/swig/share/swig/4.4.0/php/std_auto_ptr.i +41 -0
  2332. package/dist/swig/share/swig/4.4.0/php/std_common.i +9 -0
  2333. package/dist/swig/share/swig/4.4.0/php/std_deque.i +1 -0
  2334. package/dist/swig/share/swig/4.4.0/php/std_map.i +73 -0
  2335. package/dist/swig/share/swig/4.4.0/php/std_pair.i +36 -0
  2336. package/dist/swig/share/swig/4.4.0/php/std_string.i +121 -0
  2337. package/dist/swig/share/swig/4.4.0/php/std_string_view.i +69 -0
  2338. package/dist/swig/share/swig/4.4.0/php/std_unique_ptr.i +73 -0
  2339. package/dist/swig/share/swig/4.4.0/php/std_vector.i +114 -0
  2340. package/dist/swig/share/swig/4.4.0/php/stl.i +9 -0
  2341. package/dist/swig/share/swig/4.4.0/php/swigmove.i +26 -0
  2342. package/dist/swig/share/swig/4.4.0/php/typemaps.i +295 -0
  2343. package/dist/swig/share/swig/4.4.0/php/utils.i +102 -0
  2344. package/dist/swig/share/swig/4.4.0/python/Makefile.in +118 -0
  2345. package/dist/swig/share/swig/4.4.0/python/README +103 -0
  2346. package/dist/swig/share/swig/4.4.0/python/argcargv.i +88 -0
  2347. package/dist/swig/share/swig/4.4.0/python/attribute.i +1 -0
  2348. package/dist/swig/share/swig/4.4.0/python/boost_shared_ptr.i +411 -0
  2349. package/dist/swig/share/swig/4.4.0/python/builtin.swg +893 -0
  2350. package/dist/swig/share/swig/4.4.0/python/carrays.i +9 -0
  2351. package/dist/swig/share/swig/4.4.0/python/ccomplex.i +27 -0
  2352. package/dist/swig/share/swig/4.4.0/python/cmalloc.i +1 -0
  2353. package/dist/swig/share/swig/4.4.0/python/complex.i +6 -0
  2354. package/dist/swig/share/swig/4.4.0/python/cpointer.i +1 -0
  2355. package/dist/swig/share/swig/4.4.0/python/cstring.i +1 -0
  2356. package/dist/swig/share/swig/4.4.0/python/cwstring.i +3 -0
  2357. package/dist/swig/share/swig/4.4.0/python/director.swg +359 -0
  2358. package/dist/swig/share/swig/4.4.0/python/director_py_mutex.swg +24 -0
  2359. package/dist/swig/share/swig/4.4.0/python/embed.i +113 -0
  2360. package/dist/swig/share/swig/4.4.0/python/exception.i +6 -0
  2361. package/dist/swig/share/swig/4.4.0/python/factory.i +1 -0
  2362. package/dist/swig/share/swig/4.4.0/python/file.i +41 -0
  2363. package/dist/swig/share/swig/4.4.0/python/implicit.i +7 -0
  2364. package/dist/swig/share/swig/4.4.0/python/pyabc.i +14 -0
  2365. package/dist/swig/share/swig/4.4.0/python/pyapi.swg +30 -0
  2366. package/dist/swig/share/swig/4.4.0/python/pybackward.swg +45 -0
  2367. package/dist/swig/share/swig/4.4.0/python/pybuffer.i +219 -0
  2368. package/dist/swig/share/swig/4.4.0/python/pyclasses.swg +157 -0
  2369. package/dist/swig/share/swig/4.4.0/python/pycomplex.swg +90 -0
  2370. package/dist/swig/share/swig/4.4.0/python/pycontainer.swg +873 -0
  2371. package/dist/swig/share/swig/4.4.0/python/pydocs.swg +45 -0
  2372. package/dist/swig/share/swig/4.4.0/python/pyerrors.swg +112 -0
  2373. package/dist/swig/share/swig/4.4.0/python/pyfragments.swg +23 -0
  2374. package/dist/swig/share/swig/4.4.0/python/pyhead.swg +205 -0
  2375. package/dist/swig/share/swig/4.4.0/python/pyinit.swg +343 -0
  2376. package/dist/swig/share/swig/4.4.0/python/pyiterators.swg +453 -0
  2377. package/dist/swig/share/swig/4.4.0/python/pymacros.swg +4 -0
  2378. package/dist/swig/share/swig/4.4.0/python/pyopers.swg +264 -0
  2379. package/dist/swig/share/swig/4.4.0/python/pyprimtypes.swg +362 -0
  2380. package/dist/swig/share/swig/4.4.0/python/pyrun.swg +2102 -0
  2381. package/dist/swig/share/swig/4.4.0/python/pyruntime.swg +53 -0
  2382. package/dist/swig/share/swig/4.4.0/python/pystdcommon.swg +265 -0
  2383. package/dist/swig/share/swig/4.4.0/python/pystrings.swg +117 -0
  2384. package/dist/swig/share/swig/4.4.0/python/python.swg +59 -0
  2385. package/dist/swig/share/swig/4.4.0/python/pythonkw.swg +140 -0
  2386. package/dist/swig/share/swig/4.4.0/python/pythreads.swg +68 -0
  2387. package/dist/swig/share/swig/4.4.0/python/pytypemaps.swg +103 -0
  2388. package/dist/swig/share/swig/4.4.0/python/pyuserdir.swg +242 -0
  2389. package/dist/swig/share/swig/4.4.0/python/pywstrings.swg +89 -0
  2390. package/dist/swig/share/swig/4.4.0/python/std_alloc.i +1 -0
  2391. package/dist/swig/share/swig/4.4.0/python/std_array.i +119 -0
  2392. package/dist/swig/share/swig/4.4.0/python/std_auto_ptr.i +39 -0
  2393. package/dist/swig/share/swig/4.4.0/python/std_basic_string.i +89 -0
  2394. package/dist/swig/share/swig/4.4.0/python/std_char_traits.i +1 -0
  2395. package/dist/swig/share/swig/4.4.0/python/std_common.i +74 -0
  2396. package/dist/swig/share/swig/4.4.0/python/std_complex.i +27 -0
  2397. package/dist/swig/share/swig/4.4.0/python/std_container.i +2 -0
  2398. package/dist/swig/share/swig/4.4.0/python/std_deque.i +27 -0
  2399. package/dist/swig/share/swig/4.4.0/python/std_except.i +1 -0
  2400. package/dist/swig/share/swig/4.4.0/python/std_filesystem.i +127 -0
  2401. package/dist/swig/share/swig/4.4.0/python/std_ios.i +3 -0
  2402. package/dist/swig/share/swig/4.4.0/python/std_iostream.i +8 -0
  2403. package/dist/swig/share/swig/4.4.0/python/std_list.i +28 -0
  2404. package/dist/swig/share/swig/4.4.0/python/std_map.i +304 -0
  2405. package/dist/swig/share/swig/4.4.0/python/std_multimap.i +83 -0
  2406. package/dist/swig/share/swig/4.4.0/python/std_multiset.i +30 -0
  2407. package/dist/swig/share/swig/4.4.0/python/std_pair.i +206 -0
  2408. package/dist/swig/share/swig/4.4.0/python/std_set.i +56 -0
  2409. package/dist/swig/share/swig/4.4.0/python/std_shared_ptr.i +2 -0
  2410. package/dist/swig/share/swig/4.4.0/python/std_sstream.i +1 -0
  2411. package/dist/swig/share/swig/4.4.0/python/std_streambuf.i +1 -0
  2412. package/dist/swig/share/swig/4.4.0/python/std_string.i +1 -0
  2413. package/dist/swig/share/swig/4.4.0/python/std_string_view.i +141 -0
  2414. package/dist/swig/share/swig/4.4.0/python/std_unique_ptr.i +69 -0
  2415. package/dist/swig/share/swig/4.4.0/python/std_unordered_map.i +290 -0
  2416. package/dist/swig/share/swig/4.4.0/python/std_unordered_multimap.i +90 -0
  2417. package/dist/swig/share/swig/4.4.0/python/std_unordered_multiset.i +37 -0
  2418. package/dist/swig/share/swig/4.4.0/python/std_unordered_set.i +56 -0
  2419. package/dist/swig/share/swig/4.4.0/python/std_vector.i +34 -0
  2420. package/dist/swig/share/swig/4.4.0/python/std_vectora.i +31 -0
  2421. package/dist/swig/share/swig/4.4.0/python/std_wios.i +1 -0
  2422. package/dist/swig/share/swig/4.4.0/python/std_wiostream.i +10 -0
  2423. package/dist/swig/share/swig/4.4.0/python/std_wsstream.i +1 -0
  2424. package/dist/swig/share/swig/4.4.0/python/std_wstreambuf.i +1 -0
  2425. package/dist/swig/share/swig/4.4.0/python/std_wstring.i +3 -0
  2426. package/dist/swig/share/swig/4.4.0/python/stl.i +10 -0
  2427. package/dist/swig/share/swig/4.4.0/python/swigmove.i +1 -0
  2428. package/dist/swig/share/swig/4.4.0/python/typemaps.i +144 -0
  2429. package/dist/swig/share/swig/4.4.0/python/wchar.i +21 -0
  2430. package/dist/swig/share/swig/4.4.0/r/argcargv.i +38 -0
  2431. package/dist/swig/share/swig/4.4.0/r/boost_shared_ptr.i +426 -0
  2432. package/dist/swig/share/swig/4.4.0/r/exception.i +8 -0
  2433. package/dist/swig/share/swig/4.4.0/r/r.swg +281 -0
  2434. package/dist/swig/share/swig/4.4.0/r/rcontainer.swg +202 -0
  2435. package/dist/swig/share/swig/4.4.0/r/rfragments.swg +191 -0
  2436. package/dist/swig/share/swig/4.4.0/r/rkw.swg +36 -0
  2437. package/dist/swig/share/swig/4.4.0/r/ropers.swg +32 -0
  2438. package/dist/swig/share/swig/4.4.0/r/rrun.swg +429 -0
  2439. package/dist/swig/share/swig/4.4.0/r/rstdcommon.swg +205 -0
  2440. package/dist/swig/share/swig/4.4.0/r/rtype.swg +359 -0
  2441. package/dist/swig/share/swig/4.4.0/r/srun.swg +150 -0
  2442. package/dist/swig/share/swig/4.4.0/r/std_alloc.i +1 -0
  2443. package/dist/swig/share/swig/4.4.0/r/std_common.i +73 -0
  2444. package/dist/swig/share/swig/4.4.0/r/std_container.i +2 -0
  2445. package/dist/swig/share/swig/4.4.0/r/std_deque.i +3 -0
  2446. package/dist/swig/share/swig/4.4.0/r/std_except.i +1 -0
  2447. package/dist/swig/share/swig/4.4.0/r/std_list.i +5 -0
  2448. package/dist/swig/share/swig/4.4.0/r/std_map.i +5 -0
  2449. package/dist/swig/share/swig/4.4.0/r/std_pair.i +5 -0
  2450. package/dist/swig/share/swig/4.4.0/r/std_shared_ptr.i +2 -0
  2451. package/dist/swig/share/swig/4.4.0/r/std_string.i +1 -0
  2452. package/dist/swig/share/swig/4.4.0/r/std_vector.i +1087 -0
  2453. package/dist/swig/share/swig/4.4.0/r/stl.i +9 -0
  2454. package/dist/swig/share/swig/4.4.0/r/swigmove.i +1 -0
  2455. package/dist/swig/share/swig/4.4.0/r/typemaps.i +1 -0
  2456. package/dist/swig/share/swig/4.4.0/ruby/Makefile.swig +42 -0
  2457. package/dist/swig/share/swig/4.4.0/ruby/argcargv.i +44 -0
  2458. package/dist/swig/share/swig/4.4.0/ruby/attribute.i +1 -0
  2459. package/dist/swig/share/swig/4.4.0/ruby/boost_shared_ptr.i +401 -0
  2460. package/dist/swig/share/swig/4.4.0/ruby/carrays.i +5 -0
  2461. package/dist/swig/share/swig/4.4.0/ruby/cmalloc.i +1 -0
  2462. package/dist/swig/share/swig/4.4.0/ruby/cpointer.i +1 -0
  2463. package/dist/swig/share/swig/4.4.0/ruby/cstring.i +1 -0
  2464. package/dist/swig/share/swig/4.4.0/ruby/director.swg +279 -0
  2465. package/dist/swig/share/swig/4.4.0/ruby/embed.i +16 -0
  2466. package/dist/swig/share/swig/4.4.0/ruby/exception.i +5 -0
  2467. package/dist/swig/share/swig/4.4.0/ruby/extconf.rb +9 -0
  2468. package/dist/swig/share/swig/4.4.0/ruby/extra-install.list +3 -0
  2469. package/dist/swig/share/swig/4.4.0/ruby/factory.i +1 -0
  2470. package/dist/swig/share/swig/4.4.0/ruby/file.i +39 -0
  2471. package/dist/swig/share/swig/4.4.0/ruby/progargcargv.i +34 -0
  2472. package/dist/swig/share/swig/4.4.0/ruby/ruby.swg +72 -0
  2473. package/dist/swig/share/swig/4.4.0/ruby/rubyapi.swg +36 -0
  2474. package/dist/swig/share/swig/4.4.0/ruby/rubyautodoc.swg +105 -0
  2475. package/dist/swig/share/swig/4.4.0/ruby/rubyclasses.swg +404 -0
  2476. package/dist/swig/share/swig/4.4.0/ruby/rubycomplex.swg +152 -0
  2477. package/dist/swig/share/swig/4.4.0/ruby/rubycontainer.swg +1118 -0
  2478. package/dist/swig/share/swig/4.4.0/ruby/rubycontainer_extended.swg +134 -0
  2479. package/dist/swig/share/swig/4.4.0/ruby/rubydef.swg +1 -0
  2480. package/dist/swig/share/swig/4.4.0/ruby/rubyerrors.swg +149 -0
  2481. package/dist/swig/share/swig/4.4.0/ruby/rubyfragments.swg +23 -0
  2482. package/dist/swig/share/swig/4.4.0/ruby/rubyhead.swg +186 -0
  2483. package/dist/swig/share/swig/4.4.0/ruby/rubyinit.swg +1 -0
  2484. package/dist/swig/share/swig/4.4.0/ruby/rubyiterators.swg +922 -0
  2485. package/dist/swig/share/swig/4.4.0/ruby/rubykw.swg +72 -0
  2486. package/dist/swig/share/swig/4.4.0/ruby/rubymacros.swg +13 -0
  2487. package/dist/swig/share/swig/4.4.0/ruby/rubyopers.swg +55 -0
  2488. package/dist/swig/share/swig/4.4.0/ruby/rubyprimtypes.swg +259 -0
  2489. package/dist/swig/share/swig/4.4.0/ruby/rubyrun.swg +470 -0
  2490. package/dist/swig/share/swig/4.4.0/ruby/rubyruntime.swg +9 -0
  2491. package/dist/swig/share/swig/4.4.0/ruby/rubystdautodoc.swg +33 -0
  2492. package/dist/swig/share/swig/4.4.0/ruby/rubystdcommon.swg +199 -0
  2493. package/dist/swig/share/swig/4.4.0/ruby/rubystdcommon_forward.swg +15 -0
  2494. package/dist/swig/share/swig/4.4.0/ruby/rubystdfunctors.swg +162 -0
  2495. package/dist/swig/share/swig/4.4.0/ruby/rubystrings.swg +57 -0
  2496. package/dist/swig/share/swig/4.4.0/ruby/rubytracking.swg +136 -0
  2497. package/dist/swig/share/swig/4.4.0/ruby/rubytypemaps.swg +57 -0
  2498. package/dist/swig/share/swig/4.4.0/ruby/rubyuserdir.swg +20 -0
  2499. package/dist/swig/share/swig/4.4.0/ruby/rubywstrings.swg +58 -0
  2500. package/dist/swig/share/swig/4.4.0/ruby/std_alloc.i +1 -0
  2501. package/dist/swig/share/swig/4.4.0/ruby/std_array.i +102 -0
  2502. package/dist/swig/share/swig/4.4.0/ruby/std_auto_ptr.i +39 -0
  2503. package/dist/swig/share/swig/4.4.0/ruby/std_basic_string.i +92 -0
  2504. package/dist/swig/share/swig/4.4.0/ruby/std_char_traits.i +1 -0
  2505. package/dist/swig/share/swig/4.4.0/ruby/std_common.i +74 -0
  2506. package/dist/swig/share/swig/4.4.0/ruby/std_complex.i +29 -0
  2507. package/dist/swig/share/swig/4.4.0/ruby/std_container.i +2 -0
  2508. package/dist/swig/share/swig/4.4.0/ruby/std_deque.i +30 -0
  2509. package/dist/swig/share/swig/4.4.0/ruby/std_except.i +1 -0
  2510. package/dist/swig/share/swig/4.4.0/ruby/std_functors.i +29 -0
  2511. package/dist/swig/share/swig/4.4.0/ruby/std_ios.i +14 -0
  2512. package/dist/swig/share/swig/4.4.0/ruby/std_iostream.i +12 -0
  2513. package/dist/swig/share/swig/4.4.0/ruby/std_list.i +42 -0
  2514. package/dist/swig/share/swig/4.4.0/ruby/std_map.i +428 -0
  2515. package/dist/swig/share/swig/4.4.0/ruby/std_multimap.i +226 -0
  2516. package/dist/swig/share/swig/4.4.0/ruby/std_multiset.i +50 -0
  2517. package/dist/swig/share/swig/4.4.0/ruby/std_pair.i +212 -0
  2518. package/dist/swig/share/swig/4.4.0/ruby/std_queue.i +33 -0
  2519. package/dist/swig/share/swig/4.4.0/ruby/std_set.i +228 -0
  2520. package/dist/swig/share/swig/4.4.0/ruby/std_shared_ptr.i +144 -0
  2521. package/dist/swig/share/swig/4.4.0/ruby/std_sstream.i +2 -0
  2522. package/dist/swig/share/swig/4.4.0/ruby/std_stack.i +35 -0
  2523. package/dist/swig/share/swig/4.4.0/ruby/std_streambuf.i +1 -0
  2524. package/dist/swig/share/swig/4.4.0/ruby/std_string.i +7 -0
  2525. package/dist/swig/share/swig/4.4.0/ruby/std_string_view.i +6 -0
  2526. package/dist/swig/share/swig/4.4.0/ruby/std_unique_ptr.i +69 -0
  2527. package/dist/swig/share/swig/4.4.0/ruby/std_unordered_map.i +83 -0
  2528. package/dist/swig/share/swig/4.4.0/ruby/std_unordered_multimap.i +100 -0
  2529. package/dist/swig/share/swig/4.4.0/ruby/std_unordered_multiset.i +50 -0
  2530. package/dist/swig/share/swig/4.4.0/ruby/std_unordered_set.i +50 -0
  2531. package/dist/swig/share/swig/4.4.0/ruby/std_vector.i +52 -0
  2532. package/dist/swig/share/swig/4.4.0/ruby/std_vectora.i +36 -0
  2533. package/dist/swig/share/swig/4.4.0/ruby/std_wstring.i +63 -0
  2534. package/dist/swig/share/swig/4.4.0/ruby/stl.i +10 -0
  2535. package/dist/swig/share/swig/4.4.0/ruby/swigmove.i +1 -0
  2536. package/dist/swig/share/swig/4.4.0/ruby/timeval.i +69 -0
  2537. package/dist/swig/share/swig/4.4.0/ruby/typemaps.i +310 -0
  2538. package/dist/swig/share/swig/4.4.0/runtime.swg +38 -0
  2539. package/dist/swig/share/swig/4.4.0/scilab/argcargv.i +109 -0
  2540. package/dist/swig/share/swig/4.4.0/scilab/boost_shared_ptr.i +401 -0
  2541. package/dist/swig/share/swig/4.4.0/scilab/carrays.i +5 -0
  2542. package/dist/swig/share/swig/4.4.0/scilab/cmalloc.i +1 -0
  2543. package/dist/swig/share/swig/4.4.0/scilab/cpointer.i +1 -0
  2544. package/dist/swig/share/swig/4.4.0/scilab/exception.i +6 -0
  2545. package/dist/swig/share/swig/4.4.0/scilab/matrix.i +11 -0
  2546. package/dist/swig/share/swig/4.4.0/scilab/sciarray.swg +115 -0
  2547. package/dist/swig/share/swig/4.4.0/scilab/scibool.swg +156 -0
  2548. package/dist/swig/share/swig/4.4.0/scilab/scichar.swg +293 -0
  2549. package/dist/swig/share/swig/4.4.0/scilab/scicontainer.swg +445 -0
  2550. package/dist/swig/share/swig/4.4.0/scilab/scidouble.swg +120 -0
  2551. package/dist/swig/share/swig/4.4.0/scilab/scienum.swg +31 -0
  2552. package/dist/swig/share/swig/4.4.0/scilab/sciexception.swg +61 -0
  2553. package/dist/swig/share/swig/4.4.0/scilab/scifloat.swg +83 -0
  2554. package/dist/swig/share/swig/4.4.0/scilab/sciint.swg +207 -0
  2555. package/dist/swig/share/swig/4.4.0/scilab/sciiterators.swg +358 -0
  2556. package/dist/swig/share/swig/4.4.0/scilab/scilab.swg +6 -0
  2557. package/dist/swig/share/swig/4.4.0/scilab/scilist.swg +91 -0
  2558. package/dist/swig/share/swig/4.4.0/scilab/scilong.swg +123 -0
  2559. package/dist/swig/share/swig/4.4.0/scilab/scilonglong.swg +54 -0
  2560. package/dist/swig/share/swig/4.4.0/scilab/scimacros.swg +5 -0
  2561. package/dist/swig/share/swig/4.4.0/scilab/scimatrixbool.swg +170 -0
  2562. package/dist/swig/share/swig/4.4.0/scilab/scimatrixchar.swg +199 -0
  2563. package/dist/swig/share/swig/4.4.0/scilab/scimatrixdouble.swg +178 -0
  2564. package/dist/swig/share/swig/4.4.0/scilab/scimatrixint.swg +183 -0
  2565. package/dist/swig/share/swig/4.4.0/scilab/scimisctypes.swg +69 -0
  2566. package/dist/swig/share/swig/4.4.0/scilab/scipointer.swg +32 -0
  2567. package/dist/swig/share/swig/4.4.0/scilab/sciprimtypes.swg +23 -0
  2568. package/dist/swig/share/swig/4.4.0/scilab/scirun.swg +536 -0
  2569. package/dist/swig/share/swig/4.4.0/scilab/sciruntime.swg +47 -0
  2570. package/dist/swig/share/swig/4.4.0/scilab/scisequence.swg +195 -0
  2571. package/dist/swig/share/swig/4.4.0/scilab/scisequencebool.swg +98 -0
  2572. package/dist/swig/share/swig/4.4.0/scilab/scisequencedouble.swg +99 -0
  2573. package/dist/swig/share/swig/4.4.0/scilab/scisequencefloat.swg +98 -0
  2574. package/dist/swig/share/swig/4.4.0/scilab/scisequenceint.swg +104 -0
  2575. package/dist/swig/share/swig/4.4.0/scilab/scisequencepointer.swg +123 -0
  2576. package/dist/swig/share/swig/4.4.0/scilab/scisequencestring.swg +97 -0
  2577. package/dist/swig/share/swig/4.4.0/scilab/scishort.swg +188 -0
  2578. package/dist/swig/share/swig/4.4.0/scilab/scisignedchar.swg +185 -0
  2579. package/dist/swig/share/swig/4.4.0/scilab/scistdcommon.swg +218 -0
  2580. package/dist/swig/share/swig/4.4.0/scilab/scitypemaps.swg +259 -0
  2581. package/dist/swig/share/swig/4.4.0/scilab/sciunsignedchar.swg +190 -0
  2582. package/dist/swig/share/swig/4.4.0/scilab/sciunsignedint.swg +204 -0
  2583. package/dist/swig/share/swig/4.4.0/scilab/sciunsignedlong.swg +53 -0
  2584. package/dist/swig/share/swig/4.4.0/scilab/sciunsignedshort.swg +189 -0
  2585. package/dist/swig/share/swig/4.4.0/scilab/std_alloc.i +2 -0
  2586. package/dist/swig/share/swig/4.4.0/scilab/std_basic_string.i +45 -0
  2587. package/dist/swig/share/swig/4.4.0/scilab/std_char_traits.i +1 -0
  2588. package/dist/swig/share/swig/4.4.0/scilab/std_common.i +72 -0
  2589. package/dist/swig/share/swig/4.4.0/scilab/std_container.i +3 -0
  2590. package/dist/swig/share/swig/4.4.0/scilab/std_deque.i +31 -0
  2591. package/dist/swig/share/swig/4.4.0/scilab/std_except.i +1 -0
  2592. package/dist/swig/share/swig/4.4.0/scilab/std_list.i +30 -0
  2593. package/dist/swig/share/swig/4.4.0/scilab/std_map.i +70 -0
  2594. package/dist/swig/share/swig/4.4.0/scilab/std_multiset.i +30 -0
  2595. package/dist/swig/share/swig/4.4.0/scilab/std_pair.i +36 -0
  2596. package/dist/swig/share/swig/4.4.0/scilab/std_set.i +32 -0
  2597. package/dist/swig/share/swig/4.4.0/scilab/std_shared_ptr.i +2 -0
  2598. package/dist/swig/share/swig/4.4.0/scilab/std_string.i +47 -0
  2599. package/dist/swig/share/swig/4.4.0/scilab/std_vector.i +31 -0
  2600. package/dist/swig/share/swig/4.4.0/scilab/stl.i +10 -0
  2601. package/dist/swig/share/swig/4.4.0/scilab/swigmove.i +1 -0
  2602. package/dist/swig/share/swig/4.4.0/scilab/typemaps.i +62 -0
  2603. package/dist/swig/share/swig/4.4.0/shared_ptr.i +57 -0
  2604. package/dist/swig/share/swig/4.4.0/std/README +22 -0
  2605. package/dist/swig/share/swig/4.4.0/std/_std_deque.i +139 -0
  2606. package/dist/swig/share/swig/4.4.0/std/std_alloc.i +77 -0
  2607. package/dist/swig/share/swig/4.4.0/std/std_array.i +85 -0
  2608. package/dist/swig/share/swig/4.4.0/std/std_basic_string.i +276 -0
  2609. package/dist/swig/share/swig/4.4.0/std/std_char_traits.i +140 -0
  2610. package/dist/swig/share/swig/4.4.0/std/std_common.i +250 -0
  2611. package/dist/swig/share/swig/4.4.0/std/std_container.i +169 -0
  2612. package/dist/swig/share/swig/4.4.0/std/std_deque.i +127 -0
  2613. package/dist/swig/share/swig/4.4.0/std/std_except.i +73 -0
  2614. package/dist/swig/share/swig/4.4.0/std/std_ios.i +262 -0
  2615. package/dist/swig/share/swig/4.4.0/std/std_iostream.i +343 -0
  2616. package/dist/swig/share/swig/4.4.0/std/std_list.i +148 -0
  2617. package/dist/swig/share/swig/4.4.0/std/std_map.i +125 -0
  2618. package/dist/swig/share/swig/4.4.0/std/std_multimap.i +100 -0
  2619. package/dist/swig/share/swig/4.4.0/std/std_multiset.i +83 -0
  2620. package/dist/swig/share/swig/4.4.0/std/std_pair.i +163 -0
  2621. package/dist/swig/share/swig/4.4.0/std/std_queue.i +129 -0
  2622. package/dist/swig/share/swig/4.4.0/std/std_set.i +122 -0
  2623. package/dist/swig/share/swig/4.4.0/std/std_sstream.i +195 -0
  2624. package/dist/swig/share/swig/4.4.0/std/std_stack.i +128 -0
  2625. package/dist/swig/share/swig/4.4.0/std/std_streambuf.i +94 -0
  2626. package/dist/swig/share/swig/4.4.0/std/std_string.i +13 -0
  2627. package/dist/swig/share/swig/4.4.0/std/std_unordered_map.i +122 -0
  2628. package/dist/swig/share/swig/4.4.0/std/std_unordered_multimap.i +85 -0
  2629. package/dist/swig/share/swig/4.4.0/std/std_unordered_multiset.i +85 -0
  2630. package/dist/swig/share/swig/4.4.0/std/std_unordered_set.i +119 -0
  2631. package/dist/swig/share/swig/4.4.0/std/std_vector.i +225 -0
  2632. package/dist/swig/share/swig/4.4.0/std/std_vectora.i +7 -0
  2633. package/dist/swig/share/swig/4.4.0/std/std_wios.i +7 -0
  2634. package/dist/swig/share/swig/4.4.0/std/std_wiostream.i +7 -0
  2635. package/dist/swig/share/swig/4.4.0/std/std_wsstream.i +7 -0
  2636. package/dist/swig/share/swig/4.4.0/std/std_wstreambuf.i +7 -0
  2637. package/dist/swig/share/swig/4.4.0/std/std_wstring.i +14 -0
  2638. package/dist/swig/share/swig/4.4.0/std_except.i +57 -0
  2639. package/dist/swig/share/swig/4.4.0/stdint.i +106 -0
  2640. package/dist/swig/share/swig/4.4.0/stl.i +7 -0
  2641. package/dist/swig/share/swig/4.4.0/swig.swg +710 -0
  2642. package/dist/swig/share/swig/4.4.0/swigarch.i +33 -0
  2643. package/dist/swig/share/swig/4.4.0/swigcompat.swg +27 -0
  2644. package/dist/swig/share/swig/4.4.0/swigerrors.swg +15 -0
  2645. package/dist/swig/share/swig/4.4.0/swigfragments.swg +133 -0
  2646. package/dist/swig/share/swig/4.4.0/swiginit.swg +399 -0
  2647. package/dist/swig/share/swig/4.4.0/swiglabels.swg +129 -0
  2648. package/dist/swig/share/swig/4.4.0/swigrun.i +8 -0
  2649. package/dist/swig/share/swig/4.4.0/swigrun.swg +677 -0
  2650. package/dist/swig/share/swig/4.4.0/swigwarn.swg +342 -0
  2651. package/dist/swig/share/swig/4.4.0/swigwarnings.swg +131 -0
  2652. package/dist/swig/share/swig/4.4.0/tcl/Makefile.in +122 -0
  2653. package/dist/swig/share/swig/4.4.0/tcl/argcargv.i +27 -0
  2654. package/dist/swig/share/swig/4.4.0/tcl/attribute.i +1 -0
  2655. package/dist/swig/share/swig/4.4.0/tcl/carrays.i +1 -0
  2656. package/dist/swig/share/swig/4.4.0/tcl/cmalloc.i +1 -0
  2657. package/dist/swig/share/swig/4.4.0/tcl/cpointer.i +1 -0
  2658. package/dist/swig/share/swig/4.4.0/tcl/cstring.i +1 -0
  2659. package/dist/swig/share/swig/4.4.0/tcl/cwstring.i +2 -0
  2660. package/dist/swig/share/swig/4.4.0/tcl/exception.i +6 -0
  2661. package/dist/swig/share/swig/4.4.0/tcl/factory.i +1 -0
  2662. package/dist/swig/share/swig/4.4.0/tcl/std_auto_ptr.i +39 -0
  2663. package/dist/swig/share/swig/4.4.0/tcl/std_common.i +17 -0
  2664. package/dist/swig/share/swig/4.4.0/tcl/std_deque.i +1 -0
  2665. package/dist/swig/share/swig/4.4.0/tcl/std_except.i +1 -0
  2666. package/dist/swig/share/swig/4.4.0/tcl/std_map.i +70 -0
  2667. package/dist/swig/share/swig/4.4.0/tcl/std_pair.i +36 -0
  2668. package/dist/swig/share/swig/4.4.0/tcl/std_string.i +2 -0
  2669. package/dist/swig/share/swig/4.4.0/tcl/std_string_view.i +2 -0
  2670. package/dist/swig/share/swig/4.4.0/tcl/std_unique_ptr.i +69 -0
  2671. package/dist/swig/share/swig/4.4.0/tcl/std_vector.i +436 -0
  2672. package/dist/swig/share/swig/4.4.0/tcl/std_wstring.i +2 -0
  2673. package/dist/swig/share/swig/4.4.0/tcl/stl.i +10 -0
  2674. package/dist/swig/share/swig/4.4.0/tcl/swigmove.i +1 -0
  2675. package/dist/swig/share/swig/4.4.0/tcl/tcl8.swg +42 -0
  2676. package/dist/swig/share/swig/4.4.0/tcl/tclapi.swg +111 -0
  2677. package/dist/swig/share/swig/4.4.0/tcl/tclerrors.swg +79 -0
  2678. package/dist/swig/share/swig/4.4.0/tcl/tclfragments.swg +22 -0
  2679. package/dist/swig/share/swig/4.4.0/tcl/tclincludes.swg +23 -0
  2680. package/dist/swig/share/swig/4.4.0/tcl/tclinit.swg +140 -0
  2681. package/dist/swig/share/swig/4.4.0/tcl/tclinterp.i +17 -0
  2682. package/dist/swig/share/swig/4.4.0/tcl/tclkw.swg +10 -0
  2683. package/dist/swig/share/swig/4.4.0/tcl/tclmacros.swg +4 -0
  2684. package/dist/swig/share/swig/4.4.0/tcl/tclopers.swg +43 -0
  2685. package/dist/swig/share/swig/4.4.0/tcl/tclprimtypes.swg +232 -0
  2686. package/dist/swig/share/swig/4.4.0/tcl/tclresult.i +27 -0
  2687. package/dist/swig/share/swig/4.4.0/tcl/tclrun.swg +728 -0
  2688. package/dist/swig/share/swig/4.4.0/tcl/tclruntime.swg +6 -0
  2689. package/dist/swig/share/swig/4.4.0/tcl/tclsh.i +52 -0
  2690. package/dist/swig/share/swig/4.4.0/tcl/tclstrings.swg +31 -0
  2691. package/dist/swig/share/swig/4.4.0/tcl/tcltypemaps.swg +86 -0
  2692. package/dist/swig/share/swig/4.4.0/tcl/tcluserdir.swg +5 -0
  2693. package/dist/swig/share/swig/4.4.0/tcl/tclwstrings.swg +68 -0
  2694. package/dist/swig/share/swig/4.4.0/tcl/typemaps.i +464 -0
  2695. package/dist/swig/share/swig/4.4.0/tcl/wish.i +108 -0
  2696. package/dist/swig/share/swig/4.4.0/typemaps/README +54 -0
  2697. package/dist/swig/share/swig/4.4.0/typemaps/attribute.swg +150 -0
  2698. package/dist/swig/share/swig/4.4.0/typemaps/carrays.swg +114 -0
  2699. package/dist/swig/share/swig/4.4.0/typemaps/cdata_begin.swg +12 -0
  2700. package/dist/swig/share/swig/4.4.0/typemaps/cdata_end.swg +71 -0
  2701. package/dist/swig/share/swig/4.4.0/typemaps/cmalloc.swg +110 -0
  2702. package/dist/swig/share/swig/4.4.0/typemaps/cpointer.swg +157 -0
  2703. package/dist/swig/share/swig/4.4.0/typemaps/cstring.swg +9 -0
  2704. package/dist/swig/share/swig/4.4.0/typemaps/cstrings.swg +288 -0
  2705. package/dist/swig/share/swig/4.4.0/typemaps/cwstring.swg +10 -0
  2706. package/dist/swig/share/swig/4.4.0/typemaps/enumint.swg +39 -0
  2707. package/dist/swig/share/swig/4.4.0/typemaps/exception.swg +87 -0
  2708. package/dist/swig/share/swig/4.4.0/typemaps/factory.swg +88 -0
  2709. package/dist/swig/share/swig/4.4.0/typemaps/fragments.swg +231 -0
  2710. package/dist/swig/share/swig/4.4.0/typemaps/implicit.swg +208 -0
  2711. package/dist/swig/share/swig/4.4.0/typemaps/inoutlist.swg +279 -0
  2712. package/dist/swig/share/swig/4.4.0/typemaps/misctypes.swg +21 -0
  2713. package/dist/swig/share/swig/4.4.0/typemaps/primtypes.swg +361 -0
  2714. package/dist/swig/share/swig/4.4.0/typemaps/ptrtypes.swg +228 -0
  2715. package/dist/swig/share/swig/4.4.0/typemaps/std_except.swg +37 -0
  2716. package/dist/swig/share/swig/4.4.0/typemaps/std_string.swg +25 -0
  2717. package/dist/swig/share/swig/4.4.0/typemaps/std_string_view.swg +16 -0
  2718. package/dist/swig/share/swig/4.4.0/typemaps/std_strings.swg +99 -0
  2719. package/dist/swig/share/swig/4.4.0/typemaps/std_wstring.swg +26 -0
  2720. package/dist/swig/share/swig/4.4.0/typemaps/string.swg +34 -0
  2721. package/dist/swig/share/swig/4.4.0/typemaps/strings.swg +667 -0
  2722. package/dist/swig/share/swig/4.4.0/typemaps/swigmacros.swg +228 -0
  2723. package/dist/swig/share/swig/4.4.0/typemaps/swigmove.swg +21 -0
  2724. package/dist/swig/share/swig/4.4.0/typemaps/swigobject.swg +37 -0
  2725. package/dist/swig/share/swig/4.4.0/typemaps/swigtype.swg +698 -0
  2726. package/dist/swig/share/swig/4.4.0/typemaps/swigtypemaps.swg +174 -0
  2727. package/dist/swig/share/swig/4.4.0/typemaps/typemaps.swg +153 -0
  2728. package/dist/swig/share/swig/4.4.0/typemaps/valtypes.swg +216 -0
  2729. package/dist/swig/share/swig/4.4.0/typemaps/void.swg +85 -0
  2730. package/dist/swig/share/swig/4.4.0/typemaps/wstring.swg +36 -0
  2731. package/dist/swig/share/swig/4.4.0/unique_ptr.swg +22 -0
  2732. package/dist/swig/share/swig/4.4.0/wchar.i +11 -0
  2733. package/dist/swig/share/swig/4.4.0/windows.i +152 -0
  2734. package/dist/swig/share/swig/4.4.0/xml/typemaps.i +3 -0
  2735. package/dist/swig/share/swig/4.4.0/xml/xml.swg +1 -0
  2736. package/dist/swig/swig.cjs +5 -0
  2737. package/dist/swig/swig.wasm +0 -0
  2738. package/index.js +80 -0
  2739. package/package.json +27 -3
  2740. package/sbom.cdx.json +136 -0
@@ -0,0 +1,4039 @@
1
+ // -*- C++ -*-
2
+ //===----------------------------------------------------------------------===//
3
+ //
4
+ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
+ // See https://llvm.org/LICENSE.txt for license information.
6
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
+ //
8
+ //===----------------------------------------------------------------------===//
9
+
10
+ #ifndef _LIBCPP_STRING
11
+ #define _LIBCPP_STRING
12
+
13
+ // clang-format off
14
+
15
+ /*
16
+ string synopsis
17
+
18
+ #include <compare>
19
+ #include <initializer_list>
20
+
21
+ namespace std
22
+ {
23
+
24
+ template <class stateT>
25
+ class fpos
26
+ {
27
+ private:
28
+ stateT st;
29
+ public:
30
+ fpos(streamoff = streamoff());
31
+
32
+ operator streamoff() const;
33
+
34
+ stateT state() const;
35
+ void state(stateT);
36
+
37
+ fpos& operator+=(streamoff);
38
+ fpos operator+ (streamoff) const;
39
+ fpos& operator-=(streamoff);
40
+ fpos operator- (streamoff) const;
41
+ };
42
+
43
+ template <class stateT> streamoff operator-(const fpos<stateT>& x, const fpos<stateT>& y);
44
+
45
+ template <class stateT> bool operator==(const fpos<stateT>& x, const fpos<stateT>& y);
46
+ template <class stateT> bool operator!=(const fpos<stateT>& x, const fpos<stateT>& y);
47
+
48
+ template <class charT>
49
+ struct char_traits
50
+ {
51
+ using char_type = charT;
52
+ using int_type = ...;
53
+ using off_type = streamoff;
54
+ using pos_type = streampos;
55
+ using state_type = mbstate_t;
56
+ using comparison_category = strong_ordering; // Since C++20 only for the specializations
57
+ // char, wchar_t, char8_t, char16_t, and char32_t.
58
+
59
+ static void assign(char_type& c1, const char_type& c2) noexcept;
60
+ static constexpr bool eq(char_type c1, char_type c2) noexcept;
61
+ static constexpr bool lt(char_type c1, char_type c2) noexcept;
62
+
63
+ static int compare(const char_type* s1, const char_type* s2, size_t n);
64
+ static size_t length(const char_type* s);
65
+ static const char_type* find(const char_type* s, size_t n, const char_type& a);
66
+ static char_type* move(char_type* s1, const char_type* s2, size_t n);
67
+ static char_type* copy(char_type* s1, const char_type* s2, size_t n);
68
+ static char_type* assign(char_type* s, size_t n, char_type a);
69
+
70
+ static constexpr int_type not_eof(int_type c) noexcept;
71
+ static constexpr char_type to_char_type(int_type c) noexcept;
72
+ static constexpr int_type to_int_type(char_type c) noexcept;
73
+ static constexpr bool eq_int_type(int_type c1, int_type c2) noexcept;
74
+ static constexpr int_type eof() noexcept;
75
+ };
76
+
77
+ template <> struct char_traits<char>;
78
+ template <> struct char_traits<wchar_t>;
79
+ template <> struct char_traits<char8_t>; // C++20
80
+ template <> struct char_traits<char16_t>;
81
+ template <> struct char_traits<char32_t>;
82
+
83
+ template<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
84
+ class basic_string
85
+ {
86
+ public:
87
+ // types:
88
+ typedef traits traits_type;
89
+ typedef typename traits_type::char_type value_type;
90
+ typedef Allocator allocator_type;
91
+ typedef typename allocator_type::size_type size_type;
92
+ typedef typename allocator_type::difference_type difference_type;
93
+ typedef typename allocator_type::reference reference;
94
+ typedef typename allocator_type::const_reference const_reference;
95
+ typedef typename allocator_type::pointer pointer;
96
+ typedef typename allocator_type::const_pointer const_pointer;
97
+ typedef implementation-defined iterator;
98
+ typedef implementation-defined const_iterator;
99
+ typedef std::reverse_iterator<iterator> reverse_iterator;
100
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
101
+
102
+ static const size_type npos = -1;
103
+
104
+ basic_string()
105
+ noexcept(is_nothrow_default_constructible<allocator_type>::value); // constexpr since C++20
106
+ explicit basic_string(const allocator_type& a); // constexpr since C++20
107
+ basic_string(const basic_string& str); // constexpr since C++20
108
+ basic_string(basic_string&& str)
109
+ noexcept(is_nothrow_move_constructible<allocator_type>::value); // constexpr since C++20
110
+ basic_string(const basic_string& str, size_type pos,
111
+ const allocator_type& a = allocator_type()); // constexpr since C++20
112
+ basic_string(const basic_string& str, size_type pos, size_type n,
113
+ const Allocator& a = Allocator()); // constexpr since C++20
114
+ constexpr basic_string(
115
+ basic_string&& str, size_type pos, const Allocator& a = Allocator()); // since C++23
116
+ constexpr basic_string(
117
+ basic_string&& str, size_type pos, size_type n, const Allocator& a = Allocator()); // since C++23
118
+ template<class T>
119
+ basic_string(const T& t, size_type pos, size_type n, const Allocator& a = Allocator()); // C++17, constexpr since C++20
120
+ template <class T>
121
+ explicit basic_string(const T& t, const Allocator& a = Allocator()); // C++17, constexpr since C++20
122
+ basic_string(const value_type* s, const allocator_type& a = allocator_type()); // constexpr since C++20
123
+ basic_string(const value_type* s, size_type n, const allocator_type& a = allocator_type()); // constexpr since C++20
124
+ basic_string(nullptr_t) = delete; // C++23
125
+ basic_string(size_type n, value_type c, const allocator_type& a = allocator_type()); // constexpr since C++20
126
+ template<class InputIterator>
127
+ basic_string(InputIterator begin, InputIterator end,
128
+ const allocator_type& a = allocator_type()); // constexpr since C++20
129
+ template<container-compatible-range<charT> R>
130
+ constexpr basic_string(from_range_t, R&& rg, const Allocator& a = Allocator()); // since C++23
131
+ basic_string(initializer_list<value_type>, const Allocator& = Allocator()); // constexpr since C++20
132
+ basic_string(const basic_string&, const Allocator&); // constexpr since C++20
133
+ basic_string(basic_string&&, const Allocator&); // constexpr since C++20
134
+
135
+ ~basic_string(); // constexpr since C++20
136
+
137
+ operator basic_string_view<charT, traits>() const noexcept; // constexpr since C++20
138
+
139
+ basic_string& operator=(const basic_string& str); // constexpr since C++20
140
+ template <class T>
141
+ basic_string& operator=(const T& t); // C++17, constexpr since C++20
142
+ basic_string& operator=(basic_string&& str)
143
+ noexcept(
144
+ allocator_type::propagate_on_container_move_assignment::value ||
145
+ allocator_type::is_always_equal::value ); // C++17, constexpr since C++20
146
+ basic_string& operator=(const value_type* s); // constexpr since C++20
147
+ basic_string& operator=(nullptr_t) = delete; // C++23
148
+ basic_string& operator=(value_type c); // constexpr since C++20
149
+ basic_string& operator=(initializer_list<value_type>); // constexpr since C++20
150
+
151
+ iterator begin() noexcept; // constexpr since C++20
152
+ const_iterator begin() const noexcept; // constexpr since C++20
153
+ iterator end() noexcept; // constexpr since C++20
154
+ const_iterator end() const noexcept; // constexpr since C++20
155
+
156
+ reverse_iterator rbegin() noexcept; // constexpr since C++20
157
+ const_reverse_iterator rbegin() const noexcept; // constexpr since C++20
158
+ reverse_iterator rend() noexcept; // constexpr since C++20
159
+ const_reverse_iterator rend() const noexcept; // constexpr since C++20
160
+
161
+ const_iterator cbegin() const noexcept; // constexpr since C++20
162
+ const_iterator cend() const noexcept; // constexpr since C++20
163
+ const_reverse_iterator crbegin() const noexcept; // constexpr since C++20
164
+ const_reverse_iterator crend() const noexcept; // constexpr since C++20
165
+
166
+ size_type size() const noexcept; // constexpr since C++20
167
+ size_type length() const noexcept; // constexpr since C++20
168
+ size_type max_size() const noexcept; // constexpr since C++20
169
+ size_type capacity() const noexcept; // constexpr since C++20
170
+
171
+ void resize(size_type n, value_type c); // constexpr since C++20
172
+ void resize(size_type n); // constexpr since C++20
173
+
174
+ template<class Operation>
175
+ constexpr void resize_and_overwrite(size_type n, Operation op); // since C++23
176
+
177
+ void reserve(size_type res_arg); // constexpr since C++20
178
+ void reserve(); // deprecated in C++20, removed in C++26
179
+ void shrink_to_fit(); // constexpr since C++20
180
+ void clear() noexcept; // constexpr since C++20
181
+ bool empty() const noexcept; // constexpr since C++20
182
+
183
+ const_reference operator[](size_type pos) const; // constexpr since C++20
184
+ reference operator[](size_type pos); // constexpr since C++20
185
+
186
+ const_reference at(size_type n) const; // constexpr since C++20
187
+ reference at(size_type n); // constexpr since C++20
188
+
189
+ basic_string& operator+=(const basic_string& str); // constexpr since C++20
190
+ template <class T>
191
+ basic_string& operator+=(const T& t); // C++17, constexpr since C++20
192
+ basic_string& operator+=(const value_type* s); // constexpr since C++20
193
+ basic_string& operator+=(value_type c); // constexpr since C++20
194
+ basic_string& operator+=(initializer_list<value_type>); // constexpr since C++20
195
+
196
+ basic_string& append(const basic_string& str); // constexpr since C++20
197
+ template <class T>
198
+ basic_string& append(const T& t); // C++17, constexpr since C++20
199
+ basic_string& append(const basic_string& str, size_type pos, size_type n=npos); // C++14, constexpr since C++20
200
+ template <class T>
201
+ basic_string& append(const T& t, size_type pos, size_type n=npos); // C++17, constexpr since C++20
202
+ basic_string& append(const value_type* s, size_type n); // constexpr since C++20
203
+ basic_string& append(const value_type* s); // constexpr since C++20
204
+ basic_string& append(size_type n, value_type c); // constexpr since C++20
205
+ template<class InputIterator>
206
+ basic_string& append(InputIterator first, InputIterator last); // constexpr since C++20
207
+ template<container-compatible-range<charT> R>
208
+ constexpr basic_string& append_range(R&& rg); // C++23
209
+ basic_string& append(initializer_list<value_type>); // constexpr since C++20
210
+
211
+ void push_back(value_type c); // constexpr since C++20
212
+ void pop_back(); // constexpr since C++20
213
+ reference front(); // constexpr since C++20
214
+ const_reference front() const; // constexpr since C++20
215
+ reference back(); // constexpr since C++20
216
+ const_reference back() const; // constexpr since C++20
217
+
218
+ basic_string& assign(const basic_string& str); // constexpr since C++20
219
+ template <class T>
220
+ basic_string& assign(const T& t); // C++17, constexpr since C++20
221
+ basic_string& assign(basic_string&& str); // constexpr since C++20
222
+ basic_string& assign(const basic_string& str, size_type pos, size_type n=npos); // C++14, constexpr since C++20
223
+ template <class T>
224
+ basic_string& assign(const T& t, size_type pos, size_type n=npos); // C++17, constexpr since C++20
225
+ basic_string& assign(const value_type* s, size_type n); // constexpr since C++20
226
+ basic_string& assign(const value_type* s); // constexpr since C++20
227
+ basic_string& assign(size_type n, value_type c); // constexpr since C++20
228
+ template<class InputIterator>
229
+ basic_string& assign(InputIterator first, InputIterator last); // constexpr since C++20
230
+ template<container-compatible-range<charT> R>
231
+ constexpr basic_string& assign_range(R&& rg); // C++23
232
+ basic_string& assign(initializer_list<value_type>); // constexpr since C++20
233
+
234
+ basic_string& insert(size_type pos1, const basic_string& str); // constexpr since C++20
235
+ template <class T>
236
+ basic_string& insert(size_type pos1, const T& t); // constexpr since C++20
237
+ basic_string& insert(size_type pos1, const basic_string& str,
238
+ size_type pos2, size_type n2=npos); // constexpr since C++20
239
+ template <class T>
240
+ basic_string& insert(size_type pos1, const T& t, size_type pos2, size_type n=npos); // C++17, constexpr since C++20
241
+ basic_string& insert(size_type pos, const value_type* s, size_type n=npos); // C++14, constexpr since C++20
242
+ basic_string& insert(size_type pos, const value_type* s); // constexpr since C++20
243
+ basic_string& insert(size_type pos, size_type n, value_type c); // constexpr since C++20
244
+ iterator insert(const_iterator p, value_type c); // constexpr since C++20
245
+ iterator insert(const_iterator p, size_type n, value_type c); // constexpr since C++20
246
+ template<class InputIterator>
247
+ iterator insert(const_iterator p, InputIterator first, InputIterator last); // constexpr since C++20
248
+ template<container-compatible-range<charT> R>
249
+ constexpr iterator insert_range(const_iterator p, R&& rg); // C++23
250
+ iterator insert(const_iterator p, initializer_list<value_type>); // constexpr since C++20
251
+
252
+ basic_string& erase(size_type pos = 0, size_type n = npos); // constexpr since C++20
253
+ iterator erase(const_iterator position); // constexpr since C++20
254
+ iterator erase(const_iterator first, const_iterator last); // constexpr since C++20
255
+
256
+ basic_string& replace(size_type pos1, size_type n1, const basic_string& str); // constexpr since C++20
257
+ template <class T>
258
+ basic_string& replace(size_type pos1, size_type n1, const T& t); // C++17, constexpr since C++20
259
+ basic_string& replace(size_type pos1, size_type n1, const basic_string& str,
260
+ size_type pos2, size_type n2=npos); // C++14, constexpr since C++20
261
+ template <class T>
262
+ basic_string& replace(size_type pos1, size_type n1, const T& t,
263
+ size_type pos2, size_type n2=npos); // C++17, constexpr since C++20
264
+ basic_string& replace(size_type pos, size_type n1, const value_type* s, size_type n2); // constexpr since C++20
265
+ basic_string& replace(size_type pos, size_type n1, const value_type* s); // constexpr since C++20
266
+ basic_string& replace(size_type pos, size_type n1, size_type n2, value_type c); // constexpr since C++20
267
+ basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str); // constexpr since C++20
268
+ template <class T>
269
+ basic_string& replace(const_iterator i1, const_iterator i2, const T& t); // C++17, constexpr since C++20
270
+ basic_string& replace(const_iterator i1, const_iterator i2, const value_type* s, size_type n); // constexpr since C++20
271
+ basic_string& replace(const_iterator i1, const_iterator i2, const value_type* s); // constexpr since C++20
272
+ basic_string& replace(const_iterator i1, const_iterator i2, size_type n, value_type c); // constexpr since C++20
273
+ template<class InputIterator>
274
+ basic_string& replace(const_iterator i1, const_iterator i2, InputIterator j1, InputIterator j2); // constexpr since C++20
275
+ template<container-compatible-range<charT> R>
276
+ constexpr basic_string& replace_with_range(const_iterator i1, const_iterator i2, R&& rg); // C++23
277
+ basic_string& replace(const_iterator i1, const_iterator i2, initializer_list<value_type>); // constexpr since C++20
278
+
279
+ size_type copy(value_type* s, size_type n, size_type pos = 0) const; // constexpr since C++20
280
+ basic_string substr(size_type pos = 0, size_type n = npos) const; // constexpr in C++20, removed in C++23
281
+ basic_string substr(size_type pos = 0, size_type n = npos) const&; // since C++23
282
+ constexpr basic_string substr(size_type pos = 0, size_type n = npos) &&; // since C++23
283
+ constexpr basic_string_view<charT, traits> subview(size_type pos = 0,
284
+ size_type n = npos) const; // since C++26
285
+ void swap(basic_string& str)
286
+ noexcept(allocator_traits<allocator_type>::propagate_on_container_swap::value ||
287
+ allocator_traits<allocator_type>::is_always_equal::value); // C++17, constexpr since C++20
288
+
289
+ const value_type* c_str() const noexcept; // constexpr since C++20
290
+ const value_type* data() const noexcept; // constexpr since C++20
291
+ value_type* data() noexcept; // C++17, constexpr since C++20
292
+
293
+ allocator_type get_allocator() const noexcept; // constexpr since C++20
294
+
295
+ size_type find(const basic_string& str, size_type pos = 0) const noexcept; // constexpr since C++20
296
+ template <class T>
297
+ size_type find(const T& t, size_type pos = 0) const noexcept; // C++17, noexcept as an extension, constexpr since C++20
298
+ size_type find(const value_type* s, size_type pos, size_type n) const noexcept; // constexpr since C++20
299
+ size_type find(const value_type* s, size_type pos = 0) const noexcept; // constexpr since C++20
300
+ size_type find(value_type c, size_type pos = 0) const noexcept; // constexpr since C++20
301
+
302
+ size_type rfind(const basic_string& str, size_type pos = npos) const noexcept; // constexpr since C++20
303
+ template <class T>
304
+ size_type rfind(const T& t, size_type pos = npos) const noexcept; // C++17, noexcept as an extension, constexpr since C++20
305
+ size_type rfind(const value_type* s, size_type pos, size_type n) const noexcept; // constexpr since C++20
306
+ size_type rfind(const value_type* s, size_type pos = npos) const noexcept; // constexpr since C++20
307
+ size_type rfind(value_type c, size_type pos = npos) const noexcept; // constexpr since C++20
308
+
309
+ size_type find_first_of(const basic_string& str, size_type pos = 0) const noexcept; // constexpr since C++20
310
+ template <class T>
311
+ size_type find_first_of(const T& t, size_type pos = 0) const noexcept; // C++17, noexcept as an extension, constexpr since C++20
312
+ size_type find_first_of(const value_type* s, size_type pos, size_type n) const noexcept; // constexpr since C++20
313
+ size_type find_first_of(const value_type* s, size_type pos = 0) const noexcept; // constexpr since C++20
314
+ size_type find_first_of(value_type c, size_type pos = 0) const noexcept; // constexpr since C++20
315
+
316
+ size_type find_last_of(const basic_string& str, size_type pos = npos) const noexcept; // constexpr since C++20
317
+ template <class T>
318
+ size_type find_last_of(const T& t, size_type pos = npos) const noexcept noexcept; // C++17, noexcept as an extension, constexpr since C++20
319
+ size_type find_last_of(const value_type* s, size_type pos, size_type n) const noexcept; // constexpr since C++20
320
+ size_type find_last_of(const value_type* s, size_type pos = npos) const noexcept; // constexpr since C++20
321
+ size_type find_last_of(value_type c, size_type pos = npos) const noexcept; // constexpr since C++20
322
+
323
+ size_type find_first_not_of(const basic_string& str, size_type pos = 0) const noexcept; // constexpr since C++20
324
+ template <class T>
325
+ size_type find_first_not_of(const T& t, size_type pos = 0) const noexcept; // C++17, noexcept as an extension, constexpr since C++20
326
+ size_type find_first_not_of(const value_type* s, size_type pos, size_type n) const noexcept; // constexpr since C++20
327
+ size_type find_first_not_of(const value_type* s, size_type pos = 0) const noexcept; // constexpr since C++20
328
+ size_type find_first_not_of(value_type c, size_type pos = 0) const noexcept; // constexpr since C++20
329
+
330
+ size_type find_last_not_of(const basic_string& str, size_type pos = npos) const noexcept; // constexpr since C++20
331
+ template <class T>
332
+ size_type find_last_not_of(const T& t, size_type pos = npos) const noexcept; // C++17, noexcept as an extension, constexpr since C++20
333
+ size_type find_last_not_of(const value_type* s, size_type pos, size_type n) const noexcept; // constexpr since C++20
334
+ size_type find_last_not_of(const value_type* s, size_type pos = npos) const noexcept; // constexpr since C++20
335
+ size_type find_last_not_of(value_type c, size_type pos = npos) const noexcept; // constexpr since C++20
336
+
337
+ int compare(const basic_string& str) const noexcept; // constexpr since C++20
338
+ template <class T>
339
+ int compare(const T& t) const noexcept; // C++17, noexcept as an extension, constexpr since C++20
340
+ int compare(size_type pos1, size_type n1, const basic_string& str) const; // constexpr since C++20
341
+ template <class T>
342
+ int compare(size_type pos1, size_type n1, const T& t) const; // C++17, constexpr since C++20
343
+ int compare(size_type pos1, size_type n1, const basic_string& str,
344
+ size_type pos2, size_type n2=npos) const; // C++14, constexpr since C++20
345
+ template <class T>
346
+ int compare(size_type pos1, size_type n1, const T& t,
347
+ size_type pos2, size_type n2=npos) const; // C++17, constexpr since C++20
348
+ int compare(const value_type* s) const noexcept; // constexpr since C++20
349
+ int compare(size_type pos1, size_type n1, const value_type* s) const; // constexpr since C++20
350
+ int compare(size_type pos1, size_type n1, const value_type* s, size_type n2) const; // constexpr since C++20
351
+
352
+ constexpr bool starts_with(basic_string_view<charT, traits> sv) const noexcept; // C++20
353
+ constexpr bool starts_with(charT c) const noexcept; // C++20
354
+ constexpr bool starts_with(const charT* s) const; // C++20
355
+ constexpr bool ends_with(basic_string_view<charT, traits> sv) const noexcept; // C++20
356
+ constexpr bool ends_with(charT c) const noexcept; // C++20
357
+ constexpr bool ends_with(const charT* s) const; // C++20
358
+
359
+ constexpr bool contains(basic_string_view<charT, traits> sv) const noexcept; // C++23
360
+ constexpr bool contains(charT c) const noexcept; // C++23
361
+ constexpr bool contains(const charT* s) const; // C++23
362
+ };
363
+
364
+ template<class InputIterator,
365
+ class Allocator = allocator<typename iterator_traits<InputIterator>::value_type>>
366
+ basic_string(InputIterator, InputIterator, Allocator = Allocator())
367
+ -> basic_string<typename iterator_traits<InputIterator>::value_type,
368
+ char_traits<typename iterator_traits<InputIterator>::value_type>,
369
+ Allocator>; // C++17
370
+
371
+ template<ranges::input_range R,
372
+ class Allocator = allocator<ranges::range_value_t<R>>>
373
+ basic_string(from_range_t, R&&, Allocator = Allocator())
374
+ -> basic_string<ranges::range_value_t<R>, char_traits<ranges::range_value_t<R>>,
375
+ Allocator>; // C++23
376
+
377
+ template<class charT,
378
+ class traits,
379
+ class Allocator = allocator<charT>>
380
+ explicit basic_string(basic_string_view<charT, traits>, const Allocator& = Allocator())
381
+ -> basic_string<charT, traits, Allocator>; // C++17
382
+
383
+ template<class charT,
384
+ class traits,
385
+ class Allocator = allocator<charT>>
386
+ basic_string(basic_string_view<charT, traits>,
387
+ typename see below::size_type, typename see below::size_type,
388
+ const Allocator& = Allocator())
389
+ -> basic_string<charT, traits, Allocator>; // C++17
390
+
391
+ template<class charT, class traits, class Allocator>
392
+ basic_string<charT, traits, Allocator>
393
+ operator+(const basic_string<charT, traits, Allocator>& lhs,
394
+ const basic_string<charT, traits, Allocator>& rhs); // constexpr since C++20
395
+
396
+ template<class charT, class traits, class Allocator>
397
+ basic_string<charT, traits, Allocator>
398
+ operator+(const charT* lhs , const basic_string<charT,traits,Allocator>&rhs); // constexpr since C++20
399
+
400
+ template<class charT, class traits, class Allocator>
401
+ basic_string<charT, traits, Allocator>
402
+ operator+(charT lhs, const basic_string<charT,traits,Allocator>& rhs); // constexpr since C++20
403
+
404
+ template<class charT, class traits, class Allocator>
405
+ basic_string<charT, traits, Allocator>
406
+ operator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs); // constexpr since C++20
407
+
408
+ template<class charT, class traits, class Allocator>
409
+ basic_string<charT, traits, Allocator>
410
+ operator+(const basic_string<charT, traits, Allocator>& lhs, charT rhs); // constexpr since C++20
411
+
412
+ template<class charT, class traits, class Allocator>
413
+ constexpr basic_string<charT, traits, Allocator>
414
+ operator+(const basic_string<charT, traits, Allocator>& lhs,
415
+ type_identity_t<basic_string_view<charT, traits>> rhs); // Since C++26
416
+ template<class charT, class traits, class Allocator>
417
+ constexpr basic_string<charT, traits, Allocator>
418
+ operator+(basic_string<charT, traits, Allocator>&& lhs,
419
+ type_identity_t<basic_string_view<charT, traits>> rhs); // Since C++26
420
+ template<class charT, class traits, class Allocator>
421
+ constexpr basic_string<charT, traits, Allocator>
422
+ operator+(type_identity_t<basic_string_view<charT, traits>> lhs,
423
+ const basic_string<charT, traits, Allocator>& rhs); // Since C++26
424
+ template<class charT, class traits, class Allocator>
425
+ constexpr basic_string<charT, traits, Allocator>
426
+ operator+(type_identity_t<basic_string_view<charT, traits>> lhs,
427
+ basic_string<charT, traits, Allocator>&& rhs); // Since C++26
428
+
429
+
430
+ template<class charT, class traits, class Allocator>
431
+ bool operator==(const basic_string<charT, traits, Allocator>& lhs,
432
+ const basic_string<charT, traits, Allocator>& rhs) noexcept; // constexpr since C++20
433
+
434
+ template<class charT, class traits, class Allocator>
435
+ bool operator==(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
436
+
437
+ template<class charT, class traits, class Allocator>
438
+ bool operator==(const basic_string<charT,traits,Allocator>& lhs, const charT* rhs) noexcept; // constexpr since C++20
439
+
440
+ template<class charT, class traits, class Allocator>
441
+ bool operator!=(const basic_string<charT,traits,Allocator>& lhs,
442
+ const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
443
+
444
+ template<class charT, class traits, class Allocator>
445
+ bool operator!=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
446
+
447
+ template<class charT, class traits, class Allocator>
448
+ bool operator!=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // removed in C++20
449
+
450
+ template<class charT, class traits, class Allocator>
451
+ bool operator< (const basic_string<charT, traits, Allocator>& lhs,
452
+ const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
453
+
454
+ template<class charT, class traits, class Allocator>
455
+ bool operator< (const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // removed in C++20
456
+
457
+ template<class charT, class traits, class Allocator>
458
+ bool operator< (const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
459
+
460
+ template<class charT, class traits, class Allocator>
461
+ bool operator> (const basic_string<charT, traits, Allocator>& lhs,
462
+ const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
463
+
464
+ template<class charT, class traits, class Allocator>
465
+ bool operator> (const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // removed in C++20
466
+
467
+ template<class charT, class traits, class Allocator>
468
+ bool operator> (const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
469
+
470
+ template<class charT, class traits, class Allocator>
471
+ bool operator<=(const basic_string<charT, traits, Allocator>& lhs,
472
+ const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
473
+
474
+ template<class charT, class traits, class Allocator>
475
+ bool operator<=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // removed in C++20
476
+
477
+ template<class charT, class traits, class Allocator>
478
+ bool operator<=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
479
+
480
+ template<class charT, class traits, class Allocator>
481
+ bool operator>=(const basic_string<charT, traits, Allocator>& lhs,
482
+ const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
483
+
484
+ template<class charT, class traits, class Allocator>
485
+ bool operator>=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept; // removed in C++20
486
+
487
+ template<class charT, class traits, class Allocator>
488
+ bool operator>=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept; // removed in C++20
489
+
490
+ template<class charT, class traits, class Allocator> // since C++20
491
+ constexpr see below operator<=>(const basic_string<charT, traits, Allocator>& lhs,
492
+ const basic_string<charT, traits, Allocator>& rhs) noexcept;
493
+
494
+ template<class charT, class traits, class Allocator> // since C++20
495
+ constexpr see below operator<=>(const basic_string<charT, traits, Allocator>& lhs,
496
+ const charT* rhs) noexcept;
497
+
498
+ template<class charT, class traits, class Allocator>
499
+ void swap(basic_string<charT, traits, Allocator>& lhs,
500
+ basic_string<charT, traits, Allocator>& rhs)
501
+ noexcept(noexcept(lhs.swap(rhs))); // constexpr since C++20
502
+
503
+ template<class charT, class traits, class Allocator>
504
+ basic_istream<charT, traits>&
505
+ operator>>(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str);
506
+
507
+ template<class charT, class traits, class Allocator>
508
+ basic_ostream<charT, traits>&
509
+ operator<<(basic_ostream<charT, traits>& os, const basic_string<charT, traits, Allocator>& str);
510
+
511
+ template<class charT, class traits, class Allocator>
512
+ basic_istream<charT, traits>&
513
+ getline(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str,
514
+ charT delim);
515
+
516
+ template<class charT, class traits, class Allocator>
517
+ basic_istream<charT, traits>&
518
+ getline(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str);
519
+
520
+ template<class charT, class traits, class Allocator, class U>
521
+ constexpr typename basic_string<charT, traits, Allocator>::size_type
522
+ erase(basic_string<charT, traits, Allocator>& c, const U& value); // C++20
523
+ template<class charT, class traits, class Allocator, class Predicate>
524
+ constexpr typename basic_string<charT, traits, Allocator>::size_type
525
+ erase_if(basic_string<charT, traits, Allocator>& c, Predicate pred); // C++20
526
+
527
+ typedef basic_string<char> string;
528
+ typedef basic_string<wchar_t> wstring;
529
+ typedef basic_string<char8_t> u8string; // C++20
530
+ typedef basic_string<char16_t> u16string;
531
+ typedef basic_string<char32_t> u32string;
532
+
533
+ int stoi (const string& str, size_t* idx = nullptr, int base = 10);
534
+ long stol (const string& str, size_t* idx = nullptr, int base = 10);
535
+ unsigned long stoul (const string& str, size_t* idx = nullptr, int base = 10);
536
+ long long stoll (const string& str, size_t* idx = nullptr, int base = 10);
537
+ unsigned long long stoull(const string& str, size_t* idx = nullptr, int base = 10);
538
+
539
+ float stof (const string& str, size_t* idx = nullptr);
540
+ double stod (const string& str, size_t* idx = nullptr);
541
+ long double stold(const string& str, size_t* idx = nullptr);
542
+
543
+ string to_string(int val);
544
+ string to_string(unsigned val);
545
+ string to_string(long val);
546
+ string to_string(unsigned long val);
547
+ string to_string(long long val);
548
+ string to_string(unsigned long long val);
549
+ string to_string(float val);
550
+ string to_string(double val);
551
+ string to_string(long double val);
552
+
553
+ int stoi (const wstring& str, size_t* idx = nullptr, int base = 10);
554
+ long stol (const wstring& str, size_t* idx = nullptr, int base = 10);
555
+ unsigned long stoul (const wstring& str, size_t* idx = nullptr, int base = 10);
556
+ long long stoll (const wstring& str, size_t* idx = nullptr, int base = 10);
557
+ unsigned long long stoull(const wstring& str, size_t* idx = nullptr, int base = 10);
558
+
559
+ float stof (const wstring& str, size_t* idx = nullptr);
560
+ double stod (const wstring& str, size_t* idx = nullptr);
561
+ long double stold(const wstring& str, size_t* idx = nullptr);
562
+
563
+ wstring to_wstring(int val);
564
+ wstring to_wstring(unsigned val);
565
+ wstring to_wstring(long val);
566
+ wstring to_wstring(unsigned long val);
567
+ wstring to_wstring(long long val);
568
+ wstring to_wstring(unsigned long long val);
569
+ wstring to_wstring(float val);
570
+ wstring to_wstring(double val);
571
+ wstring to_wstring(long double val);
572
+
573
+ template <> struct hash<string>;
574
+ template <> struct hash<u8string>; // C++20
575
+ template <> struct hash<u16string>;
576
+ template <> struct hash<u32string>;
577
+ template <> struct hash<wstring>;
578
+
579
+ basic_string<char> operator""s( const char *str, size_t len ); // C++14, constexpr since C++20
580
+ basic_string<wchar_t> operator""s( const wchar_t *str, size_t len ); // C++14, constexpr since C++20
581
+ constexpr basic_string<char8_t> operator""s( const char8_t *str, size_t len ); // C++20
582
+ basic_string<char16_t> operator""s( const char16_t *str, size_t len ); // C++14, constexpr since C++20
583
+ basic_string<char32_t> operator""s( const char32_t *str, size_t len ); // C++14, constexpr since C++20
584
+
585
+ } // std
586
+
587
+ */
588
+
589
+ // clang-format on
590
+
591
+ #if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
592
+ # include <__cxx03/string>
593
+ #else
594
+ # include <__algorithm/max.h>
595
+ # include <__algorithm/min.h>
596
+ # include <__algorithm/remove.h>
597
+ # include <__algorithm/remove_if.h>
598
+ # include <__assert>
599
+ # include <__config>
600
+ # include <__debug_utils/sanitizers.h>
601
+ # include <__format/enable_insertable.h>
602
+ # include <__functional/hash.h>
603
+ # include <__functional/is_transparent.h>
604
+ # include <__functional/unary_function.h>
605
+ # include <__fwd/string.h>
606
+ # include <__iterator/bounded_iter.h>
607
+ # include <__iterator/distance.h>
608
+ # include <__iterator/iterator_traits.h>
609
+ # include <__iterator/reverse_iterator.h>
610
+ # include <__iterator/wrap_iter.h>
611
+ # include <__memory/addressof.h>
612
+ # include <__memory/allocate_at_least.h>
613
+ # include <__memory/allocator.h>
614
+ # include <__memory/allocator_traits.h>
615
+ # include <__memory/compressed_pair.h>
616
+ # include <__memory/construct_at.h>
617
+ # include <__memory/noexcept_move_assign_container.h>
618
+ # include <__memory/pointer_traits.h>
619
+ # include <__memory/swap_allocator.h>
620
+ # include <__memory_resource/polymorphic_allocator.h>
621
+ # include <__ranges/access.h>
622
+ # include <__ranges/concepts.h>
623
+ # include <__ranges/container_compatible_range.h>
624
+ # include <__ranges/from_range.h>
625
+ # include <__string/char_traits.h>
626
+ # include <__string/extern_template_lists.h>
627
+ # include <__type_traits/conditional.h>
628
+ # include <__type_traits/enable_if.h>
629
+ # include <__type_traits/is_allocator.h>
630
+ # include <__type_traits/is_array.h>
631
+ # include <__type_traits/is_convertible.h>
632
+ # include <__type_traits/is_generic_transparent_comparator.h>
633
+ # include <__type_traits/is_nothrow_assignable.h>
634
+ # include <__type_traits/is_nothrow_constructible.h>
635
+ # include <__type_traits/is_same.h>
636
+ # include <__type_traits/is_standard_layout.h>
637
+ # include <__type_traits/is_trivially_constructible.h>
638
+ # include <__type_traits/is_trivially_copyable.h>
639
+ # include <__type_traits/is_trivially_relocatable.h>
640
+ # include <__type_traits/remove_cvref.h>
641
+ # include <__utility/default_three_way_comparator.h>
642
+ # include <__utility/exception_guard.h>
643
+ # include <__utility/forward.h>
644
+ # include <__utility/is_pointer_in_range.h>
645
+ # include <__utility/move.h>
646
+ # include <__utility/no_destroy.h>
647
+ # include <__utility/scope_guard.h>
648
+ # include <__utility/swap.h>
649
+ # include <climits>
650
+ # include <cstdio> // EOF
651
+ # include <cstring>
652
+ # include <limits>
653
+ # include <stdexcept>
654
+ # include <string_view>
655
+ # include <version>
656
+
657
+ # if _LIBCPP_HAS_WIDE_CHARACTERS
658
+ # include <cwchar>
659
+ # endif
660
+
661
+ // standard-mandated includes
662
+
663
+ // [iterator.range]
664
+ # include <__iterator/access.h>
665
+ # include <__iterator/data.h>
666
+ # include <__iterator/empty.h>
667
+ # include <__iterator/reverse_access.h>
668
+ # include <__iterator/size.h>
669
+
670
+ // [string.syn]
671
+ # include <compare>
672
+ # include <initializer_list>
673
+
674
+ # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
675
+ # pragma GCC system_header
676
+ # endif
677
+
678
+ _LIBCPP_PUSH_MACROS
679
+ # include <__undef_macros>
680
+
681
+ # if __has_feature(address_sanitizer) && _LIBCPP_INSTRUMENTED_WITH_ASAN
682
+ # define _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS __attribute__((__no_sanitize__("address")))
683
+ // This macro disables AddressSanitizer (ASan) instrumentation for a specific function,
684
+ // allowing memory accesses that would normally trigger ASan errors to proceed without crashing.
685
+ // This is useful for accessing parts of objects memory, which should not be accessed,
686
+ // such as unused bytes in short strings, that should never be accessed
687
+ // by other parts of the program.
688
+ # else
689
+ # define _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS
690
+ # endif
691
+
692
+ _LIBCPP_BEGIN_NAMESPACE_STD
693
+
694
+ // basic_string
695
+
696
+ template <class _CharT, class _Traits, class _Allocator>
697
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
698
+ __concatenate_strings(const _Allocator& __alloc,
699
+ __type_identity_t<basic_string_view<_CharT, _Traits> > __str1,
700
+ __type_identity_t<basic_string_view<_CharT, _Traits> > __str2);
701
+
702
+ template <class _Iter>
703
+ inline const bool __string_is_trivial_iterator_v = false;
704
+
705
+ template <class _Tp>
706
+ inline const bool __string_is_trivial_iterator_v<_Tp*> = is_arithmetic<_Tp>::value;
707
+
708
+ template <class _Iter>
709
+ inline const bool __string_is_trivial_iterator_v<__wrap_iter<_Iter> > = __string_is_trivial_iterator_v<_Iter>;
710
+
711
+ template <class _CharT, class _Traits, class _Tp>
712
+ inline const bool __can_be_converted_to_string_view_v =
713
+ is_convertible<const _Tp&, basic_string_view<_CharT, _Traits> >::value &&
714
+ !is_convertible<const _Tp&, const _CharT*>::value;
715
+
716
+ struct __uninitialized_size_tag {};
717
+ struct __init_with_sentinel_tag {};
718
+
719
+ template <size_t _PaddingSize>
720
+ struct __padding {
721
+ char __padding_[_PaddingSize];
722
+ };
723
+
724
+ template <>
725
+ struct __padding<0> {};
726
+
727
+ template <class _CharT, class _Traits, class _Allocator>
728
+ class basic_string {
729
+ public:
730
+ using __self _LIBCPP_NODEBUG = basic_string;
731
+ using __self_view _LIBCPP_NODEBUG = basic_string_view<_CharT, _Traits>;
732
+ using traits_type = _Traits;
733
+ using value_type = _CharT;
734
+ using allocator_type = _Allocator;
735
+ using __alloc_traits _LIBCPP_NODEBUG = allocator_traits<allocator_type>;
736
+ using size_type = typename __alloc_traits::size_type;
737
+ using difference_type = typename __alloc_traits::difference_type;
738
+ using reference = value_type&;
739
+ using const_reference = const value_type&;
740
+ using pointer = typename __alloc_traits::pointer;
741
+ using const_pointer = typename __alloc_traits::const_pointer;
742
+
743
+ // A basic_string contains the following members which may be trivially relocatable:
744
+ // - pointer: is currently assumed to be trivially relocatable, but is still checked in case that changes
745
+ // - size_type: is always trivially relocatable, since it has to be an integral type
746
+ // - value_type: is always trivially relocatable, since it has to be trivial
747
+ // - unsigned char: is a fundamental type, so it's trivially relocatable
748
+ // - allocator_type: may or may not be trivially relocatable, so it's checked
749
+ //
750
+ // This string implementation doesn't contain any references into itself. It only contains a bit that says whether
751
+ // it is in small or large string mode, so the entire structure is trivially relocatable if its members are.
752
+ # if __has_feature(address_sanitizer) && _LIBCPP_INSTRUMENTED_WITH_ASAN
753
+ // When compiling with AddressSanitizer (ASan), basic_string cannot be trivially
754
+ // relocatable. Because the object's memory might be poisoned when its content
755
+ // is kept inside objects memory (short string optimization), instead of in allocated
756
+ // external memory. In such cases, the destructor is responsible for unpoisoning
757
+ // the memory to avoid triggering false positives.
758
+ // Therefore it's crucial to ensure the destructor is called.
759
+ using __trivially_relocatable _LIBCPP_NODEBUG = void;
760
+ # else
761
+ using __trivially_relocatable _LIBCPP_NODEBUG = __conditional_t<
762
+ __libcpp_is_trivially_relocatable<allocator_type>::value && __libcpp_is_trivially_relocatable<pointer>::value,
763
+ basic_string,
764
+ void>;
765
+ # endif
766
+
767
+ # if __has_feature(address_sanitizer) && _LIBCPP_INSTRUMENTED_WITH_ASAN
768
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pointer __asan_volatile_wrapper(pointer const& __ptr) const {
769
+ if (__libcpp_is_constant_evaluated())
770
+ return __ptr;
771
+
772
+ pointer volatile __copy_ptr = __ptr;
773
+
774
+ return const_cast<pointer&>(__copy_ptr);
775
+ }
776
+
777
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_pointer
778
+ __asan_volatile_wrapper(const_pointer const& __ptr) const {
779
+ if (__libcpp_is_constant_evaluated())
780
+ return __ptr;
781
+
782
+ const_pointer volatile __copy_ptr = __ptr;
783
+
784
+ return const_cast<const_pointer&>(__copy_ptr);
785
+ }
786
+ # define _LIBCPP_ASAN_VOLATILE_WRAPPER(PTR) __asan_volatile_wrapper(PTR)
787
+ # else
788
+ # define _LIBCPP_ASAN_VOLATILE_WRAPPER(PTR) PTR
789
+ # endif
790
+
791
+ static_assert(!is_array<value_type>::value, "Character type of basic_string must not be an array");
792
+ static_assert(is_standard_layout<value_type>::value, "Character type of basic_string must be standard-layout");
793
+ static_assert(is_trivially_default_constructible<value_type>::value,
794
+ "Character type of basic_string must be trivially default constructible");
795
+ static_assert(is_trivially_copyable<value_type>::value, "Character type of basic_string must be trivially copyable");
796
+ static_assert(is_same<_CharT, typename traits_type::char_type>::value,
797
+ "traits_type::char_type must be the same type as CharT");
798
+ static_assert(is_same<typename allocator_type::value_type, value_type>::value,
799
+ "Allocator::value_type must be same type as value_type");
800
+ static_assert(__check_valid_allocator<allocator_type>::value, "");
801
+
802
+ # ifdef _LIBCPP_ABI_BOUNDED_ITERATORS_IN_STRING
803
+ // Users might provide custom allocators, and prior to C++20 we have no existing way to detect whether the allocator's
804
+ // pointer type is contiguous (though it has to be by the Standard). Using the wrapper type ensures the iterator is
805
+ // considered contiguous.
806
+ using iterator = __bounded_iter<__wrap_iter<pointer> >;
807
+ using const_iterator = __bounded_iter<__wrap_iter<const_pointer> >;
808
+ # else
809
+ using iterator = __wrap_iter<pointer>;
810
+ using const_iterator = __wrap_iter<const_pointer>;
811
+ # endif
812
+ using reverse_iterator = std::reverse_iterator<iterator>;
813
+ using const_reverse_iterator = std::reverse_iterator<const_iterator>;
814
+
815
+ using __alloc_result _LIBCPP_NODEBUG = __allocation_result<pointer, size_type>;
816
+
817
+ private:
818
+ static_assert(CHAR_BIT == 8, "This implementation assumes that one byte contains 8 bits");
819
+
820
+ # ifdef _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
821
+
822
+ struct __long {
823
+ __long() = default;
824
+
825
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __long(__alloc_result __alloc, size_type __size)
826
+ : __data_(__alloc.ptr), __size_(__size), __cap_(__alloc.count / __endian_factor), __is_long_(true) {
827
+ _LIBCPP_ASSERT_INTERNAL(!__fits_in_sso(__alloc.count), "Long capacity should always be larger than the SSO");
828
+ }
829
+
830
+ pointer __data_;
831
+ size_type __size_;
832
+ size_type __cap_ : sizeof(size_type) * CHAR_BIT - 1;
833
+ size_type __is_long_ : 1;
834
+ };
835
+
836
+ enum { __min_cap = (sizeof(__long) - 1) / sizeof(value_type) > 2 ? (sizeof(__long) - 1) / sizeof(value_type) : 2 };
837
+
838
+ struct __short {
839
+ value_type __data_[__min_cap];
840
+ _LIBCPP_NO_UNIQUE_ADDRESS __padding<sizeof(value_type) - 1> __padding_;
841
+ unsigned char __size_ : 7;
842
+ unsigned char __is_long_ : 1;
843
+ };
844
+
845
+ // The __endian_factor is required because the field we use to store the size
846
+ // has one fewer bit than it would if it were not a bitfield.
847
+ //
848
+ // If the LSB is used to store the short-flag in the short string representation,
849
+ // we have to multiply the size by two when it is stored and divide it by two when
850
+ // it is loaded to make sure that we always store an even number. In the long string
851
+ // representation, we can ignore this because we can assume that we always allocate
852
+ // an even amount of value_types.
853
+ //
854
+ // If the MSB is used for the short-flag, the max_size() is numeric_limits<size_type>::max() / 2.
855
+ // This does not impact the short string representation, since we never need the MSB
856
+ // for representing the size of a short string anyway.
857
+
858
+ # ifdef _LIBCPP_BIG_ENDIAN
859
+ static const size_type __endian_factor = 2;
860
+ # else
861
+ static const size_type __endian_factor = 1;
862
+ # endif
863
+
864
+ # else // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
865
+
866
+ # ifdef _LIBCPP_BIG_ENDIAN
867
+ static const size_type __endian_factor = 1;
868
+ # else
869
+ static const size_type __endian_factor = 2;
870
+ # endif
871
+
872
+ // Attribute 'packed' is used to keep the layout compatible with the
873
+ // previous definition that did not use bit fields. This is because on
874
+ // some platforms bit fields have a default size rather than the actual
875
+ // size used, e.g., it is 4 bytes on AIX. See D128285 for details.
876
+ struct __long {
877
+ __long() = default;
878
+
879
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __long(__alloc_result __alloc, size_type __size)
880
+ : __is_long_(true), __cap_(__alloc.count / __endian_factor), __size_(__size), __data_(__alloc.ptr) {
881
+ _LIBCPP_ASSERT_INTERNAL(!__fits_in_sso(__alloc.count), "Long capacity should always be larger than the SSO");
882
+ }
883
+
884
+ struct _LIBCPP_PACKED {
885
+ size_type __is_long_ : 1;
886
+ size_type __cap_ : sizeof(size_type) * CHAR_BIT - 1;
887
+ };
888
+ size_type __size_;
889
+ pointer __data_;
890
+ };
891
+
892
+ enum { __min_cap = (sizeof(__long) - 1) / sizeof(value_type) > 2 ? (sizeof(__long) - 1) / sizeof(value_type) : 2 };
893
+
894
+ struct __short {
895
+ struct _LIBCPP_PACKED {
896
+ unsigned char __is_long_ : 1;
897
+ unsigned char __size_ : 7;
898
+ };
899
+ _LIBCPP_NO_UNIQUE_ADDRESS __padding<sizeof(value_type) - 1> __padding_;
900
+ value_type __data_[__min_cap];
901
+ };
902
+
903
+ # endif // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
904
+
905
+ static_assert(sizeof(__short) == (sizeof(value_type) * (__min_cap + 1)), "__short has an unexpected size.");
906
+
907
+ union __rep {
908
+ __short __s;
909
+ __long __l;
910
+
911
+ __rep() = default;
912
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __rep(__short __r) : __s(__r) {}
913
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __rep(__long __r) : __l(__r) {}
914
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __rep(__uninitialized_tag) {}
915
+ };
916
+
917
+ _LIBCPP_COMPRESSED_PAIR(__rep, __rep_, allocator_type, __alloc_);
918
+
919
+ // annotate the string with its size() at scope exit. The string has to be in a valid state at that point.
920
+ struct __annotate_new_size {
921
+ basic_string& __str_;
922
+
923
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __annotate_new_size(basic_string& __str) : __str_(__str) {}
924
+
925
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void operator()() { __str_.__annotate_new(__str_.size()); }
926
+ };
927
+
928
+ // Construct a string with the given allocator and enough storage to hold `__size` characters, but
929
+ // don't initialize the characters. The contents of the string, including the null terminator, must be
930
+ // initialized separately.
931
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit basic_string(
932
+ __uninitialized_size_tag, size_type __size, const allocator_type& __a)
933
+ : __alloc_(__a) {
934
+ __init_internal_buffer(__size);
935
+ }
936
+
937
+ template <class _Iter, class _Sent>
938
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
939
+ basic_string(__init_with_sentinel_tag, _Iter __first, _Sent __last, const allocator_type& __a)
940
+ : __alloc_(__a) {
941
+ __init_with_sentinel(std::move(__first), std::move(__last));
942
+ }
943
+
944
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator __make_iterator(pointer __p) {
945
+ # ifdef _LIBCPP_ABI_BOUNDED_ITERATORS_IN_STRING
946
+ // Bound the iterator according to the size (and not the capacity, unlike vector).
947
+ //
948
+ // By the Standard, string iterators are generally not guaranteed to stay valid when the container is modified,
949
+ // regardless of whether reallocation occurs. This allows us to check for out-of-bounds accesses using logical size,
950
+ // a stricter check, since correct code can never rely on being able to access newly-added elements via an existing
951
+ // iterator.
952
+ return std::__make_bounded_iter(
953
+ std::__wrap_iter<pointer>(__p),
954
+ std::__wrap_iter<pointer>(__get_pointer()),
955
+ std::__wrap_iter<pointer>(__get_pointer() + size()));
956
+ # else
957
+ return iterator(__p);
958
+ # endif // _LIBCPP_ABI_BOUNDED_ITERATORS_IN_STRING
959
+ }
960
+
961
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_iterator __make_const_iterator(const_pointer __p) const {
962
+ # ifdef _LIBCPP_ABI_BOUNDED_ITERATORS_IN_STRING
963
+ // Bound the iterator according to the size (and not the capacity, unlike vector).
964
+ return std::__make_bounded_iter(
965
+ std::__wrap_iter<const_pointer>(__p),
966
+ std::__wrap_iter<const_pointer>(__get_pointer()),
967
+ std::__wrap_iter<const_pointer>(__get_pointer() + size()));
968
+ # else
969
+ return const_iterator(__p);
970
+ # endif // _LIBCPP_ABI_BOUNDED_ITERATORS_IN_STRING
971
+ }
972
+
973
+ public:
974
+ _LIBCPP_TEMPLATE_DATA_VIS static const size_type npos = -1;
975
+
976
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string()
977
+ _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
978
+ # if _LIBCPP_STD_VER >= 20 // TODO(LLVM 23): Remove this condition; this is a workaround for https://llvm.org/PR154567
979
+ : __rep_(__short())
980
+ # else
981
+ : __rep_()
982
+ # endif
983
+ {
984
+ __annotate_new(0);
985
+ }
986
+
987
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit basic_string(const allocator_type& __a)
988
+ # if _LIBCPP_STD_VER <= 14
989
+ _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)
990
+ # else
991
+ _NOEXCEPT
992
+ # endif
993
+ # if _LIBCPP_STD_VER >= 20 // TODO(LLVM 23): Remove this condition; this is a workaround for https://llvm.org/PR154567
994
+ : __rep_(__short()),
995
+ # else
996
+ : __rep_(),
997
+ # endif
998
+ __alloc_(__a) {
999
+ __annotate_new(0);
1000
+ }
1001
+
1002
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS basic_string(const basic_string& __str)
1003
+ : __alloc_(__alloc_traits::select_on_container_copy_construction(__str.__alloc_)) {
1004
+ if (!__str.__is_long()) {
1005
+ __rep_ = __str.__rep_;
1006
+ __annotate_new(__get_short_size());
1007
+ } else
1008
+ __init_copy_ctor_external(std::__to_address(__str.__get_long_pointer()), __str.__get_long_size());
1009
+ }
1010
+
1011
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS
1012
+ basic_string(const basic_string& __str, const allocator_type& __a)
1013
+ : __alloc_(__a) {
1014
+ if (!__str.__is_long()) {
1015
+ __rep_ = __str.__rep_;
1016
+ __annotate_new(__get_short_size());
1017
+ } else
1018
+ __init_copy_ctor_external(std::__to_address(__str.__get_long_pointer()), __str.__get_long_size());
1019
+ }
1020
+
1021
+ # ifndef _LIBCPP_CXX03_LANG
1022
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(basic_string&& __str)
1023
+ # if _LIBCPP_STD_VER <= 14
1024
+ _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)
1025
+ # else
1026
+ _NOEXCEPT
1027
+ # endif
1028
+ // Turning off ASan instrumentation for variable initialization with _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS
1029
+ // does not work consistently during initialization of __r_, so we instead unpoison __str's memory manually first.
1030
+ // __str's memory needs to be unpoisoned only in the case where it's a short string.
1031
+ : __rep_([](basic_string& __s) -> decltype(__s.__rep_)&& {
1032
+ if (!__s.__is_long())
1033
+ __s.__annotate_delete();
1034
+ return std::move(__s.__rep_);
1035
+ }(__str)),
1036
+ __alloc_(std::move(__str.__alloc_)) {
1037
+ __str.__rep_ = __rep();
1038
+ __str.__annotate_new(0);
1039
+ if (!__is_long())
1040
+ __annotate_new(size());
1041
+ }
1042
+
1043
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(basic_string&& __str, const allocator_type& __a)
1044
+ : __alloc_(__a) {
1045
+ if (__str.__is_long() && __a != __str.__alloc_) // copy, not move
1046
+ __init(std::__to_address(__str.__get_long_pointer()), __str.__get_long_size());
1047
+ else {
1048
+ if (__libcpp_is_constant_evaluated())
1049
+ __rep_ = __rep();
1050
+ if (!__str.__is_long())
1051
+ __str.__annotate_delete();
1052
+ __rep_ = __str.__rep_;
1053
+ __str.__rep_ = __rep();
1054
+ __str.__annotate_new(0);
1055
+ if (!__is_long() && this != std::addressof(__str))
1056
+ __annotate_new(size());
1057
+ }
1058
+ }
1059
+ # endif // _LIBCPP_CXX03_LANG
1060
+
1061
+ template <__enable_if_t<__is_allocator_v<_Allocator>, int> = 0>
1062
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(const _CharT* _LIBCPP_DIAGNOSE_NULLPTR __s) {
1063
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "basic_string(const char*) detected nullptr");
1064
+ __init(__s, traits_type::length(__s));
1065
+ }
1066
+
1067
+ template <__enable_if_t<__is_allocator_v<_Allocator>, int> = 0>
1068
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
1069
+ basic_string(const _CharT* _LIBCPP_DIAGNOSE_NULLPTR __s, const _Allocator& __a)
1070
+ : __alloc_(__a) {
1071
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "basic_string(const char*, allocator) detected nullptr");
1072
+ __init(__s, traits_type::length(__s));
1073
+ }
1074
+
1075
+ # if _LIBCPP_STD_VER >= 23
1076
+ basic_string(nullptr_t) = delete;
1077
+ # endif
1078
+
1079
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(const _CharT* __s, size_type __n)
1080
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero") {
1081
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "basic_string(const char*, n) detected nullptr");
1082
+ __init(__s, __n);
1083
+ }
1084
+
1085
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
1086
+ basic_string(const _CharT* __s, size_type __n, const _Allocator& __a)
1087
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero")
1088
+ : __alloc_(__a) {
1089
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "basic_string(const char*, n, allocator) detected nullptr");
1090
+ __init(__s, __n);
1091
+ }
1092
+
1093
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(size_type __n, _CharT __c) { __init(__n, __c); }
1094
+
1095
+ # if _LIBCPP_STD_VER >= 23
1096
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string(
1097
+ basic_string&& __str, size_type __pos, const _Allocator& __alloc = _Allocator())
1098
+ : basic_string(std::move(__str), __pos, npos, __alloc) {}
1099
+
1100
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string(
1101
+ basic_string&& __str, size_type __pos, size_type __n, const _Allocator& __alloc = _Allocator())
1102
+ : __alloc_(__alloc) {
1103
+ if (__pos > __str.size())
1104
+ this->__throw_out_of_range();
1105
+
1106
+ auto __len = std::min<size_type>(__n, __str.size() - __pos);
1107
+ if (__alloc_traits::is_always_equal::value || __alloc == __str.__alloc_) {
1108
+ __move_assign(std::move(__str), __pos, __len);
1109
+ } else {
1110
+ // Perform a copy because the allocators are not compatible.
1111
+ __init(__str.data() + __pos, __len);
1112
+ }
1113
+ }
1114
+ # endif
1115
+
1116
+ template <__enable_if_t<__is_allocator_v<_Allocator>, int> = 0>
1117
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(size_type __n, _CharT __c, const _Allocator& __a)
1118
+ : __alloc_(__a) {
1119
+ __init(__n, __c);
1120
+ }
1121
+
1122
+ _LIBCPP_CONSTEXPR_SINCE_CXX20
1123
+ basic_string(const basic_string& __str, size_type __pos, size_type __n, const _Allocator& __a = _Allocator())
1124
+ : __alloc_(__a) {
1125
+ size_type __str_sz = __str.size();
1126
+ if (__pos > __str_sz)
1127
+ this->__throw_out_of_range();
1128
+ __init(__str.data() + __pos, std::min(__n, __str_sz - __pos));
1129
+ }
1130
+
1131
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
1132
+ basic_string(const basic_string& __str, size_type __pos, const _Allocator& __a = _Allocator())
1133
+ : __alloc_(__a) {
1134
+ size_type __str_sz = __str.size();
1135
+ if (__pos > __str_sz)
1136
+ this->__throw_out_of_range();
1137
+ __init(__str.data() + __pos, __str_sz - __pos);
1138
+ }
1139
+
1140
+ template <class _Tp,
1141
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1142
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1143
+ int> = 0>
1144
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
1145
+ basic_string(const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a = allocator_type())
1146
+ : __alloc_(__a) {
1147
+ __self_view __sv0 = __t;
1148
+ __self_view __sv = __sv0.substr(__pos, __n);
1149
+ __init(__sv.data(), __sv.size());
1150
+ }
1151
+
1152
+ template <class _Tp,
1153
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1154
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1155
+ int> = 0>
1156
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit basic_string(const _Tp& __t) {
1157
+ __self_view __sv = __t;
1158
+ __init(__sv.data(), __sv.size());
1159
+ }
1160
+
1161
+ template <class _Tp,
1162
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1163
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1164
+ int> = 0>
1165
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit basic_string(const _Tp& __t, const allocator_type& __a)
1166
+ : __alloc_(__a) {
1167
+ __self_view __sv = __t;
1168
+ __init(__sv.data(), __sv.size());
1169
+ }
1170
+
1171
+ template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> = 0>
1172
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(_InputIterator __first, _InputIterator __last) {
1173
+ __init(__first, __last);
1174
+ }
1175
+
1176
+ template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> = 0>
1177
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
1178
+ basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a)
1179
+ : __alloc_(__a) {
1180
+ __init(__first, __last);
1181
+ }
1182
+
1183
+ # if _LIBCPP_STD_VER >= 23
1184
+ template <_ContainerCompatibleRange<_CharT> _Range>
1185
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string(
1186
+ from_range_t, _Range&& __range, const allocator_type& __a = allocator_type())
1187
+ : __alloc_(__a) {
1188
+ if constexpr (ranges::forward_range<_Range> || ranges::sized_range<_Range>) {
1189
+ __init_with_size(ranges::begin(__range), ranges::end(__range), ranges::distance(__range));
1190
+ } else {
1191
+ __init_with_sentinel(ranges::begin(__range), ranges::end(__range));
1192
+ }
1193
+ }
1194
+ # endif
1195
+
1196
+ # ifndef _LIBCPP_CXX03_LANG
1197
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(initializer_list<_CharT> __il) {
1198
+ __init(__il.begin(), __il.end());
1199
+ }
1200
+
1201
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string(initializer_list<_CharT> __il, const _Allocator& __a)
1202
+ : __alloc_(__a) {
1203
+ __init(__il.begin(), __il.end());
1204
+ }
1205
+ # endif // _LIBCPP_CXX03_LANG
1206
+
1207
+ // TODO(boomanaiden154): Once we mark this in destructors as dead on return,
1208
+ // we can use a normal call to __reset_internal_buffer and remove the extra
1209
+ // __rep constructor.
1210
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 ~basic_string() { __reset_internal_buffer(__rep(__uninitialized_tag())); }
1211
+
1212
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 operator __self_view() const _NOEXCEPT {
1213
+ return __self_view(typename __self_view::__assume_valid(), data(), size());
1214
+ }
1215
+
1216
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS basic_string&
1217
+ operator=(const basic_string& __str);
1218
+
1219
+ template <class _Tp,
1220
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1221
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1222
+ int> = 0>
1223
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator=(const _Tp& __t) {
1224
+ __self_view __sv = __t;
1225
+ return assign(__sv);
1226
+ }
1227
+
1228
+ # ifndef _LIBCPP_CXX03_LANG
1229
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1230
+ operator=(basic_string&& __str) noexcept(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value) {
1231
+ __move_assign(__str, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>());
1232
+ return *this;
1233
+ }
1234
+
1235
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator=(initializer_list<value_type> __il) {
1236
+ return assign(__il.begin(), __il.size());
1237
+ }
1238
+ # endif
1239
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1240
+ operator=(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s) {
1241
+ return assign(__s);
1242
+ }
1243
+ # if _LIBCPP_STD_VER >= 23
1244
+ basic_string& operator=(nullptr_t) = delete;
1245
+ # endif
1246
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator=(value_type __c);
1247
+
1248
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator begin() _NOEXCEPT {
1249
+ return __make_iterator(__get_pointer());
1250
+ }
1251
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_iterator begin() const _NOEXCEPT {
1252
+ return __make_const_iterator(__get_pointer());
1253
+ }
1254
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator end() _NOEXCEPT {
1255
+ return __make_iterator(__get_pointer() + size());
1256
+ }
1257
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_iterator end() const _NOEXCEPT {
1258
+ return __make_const_iterator(__get_pointer() + size());
1259
+ }
1260
+
1261
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 reverse_iterator rbegin() _NOEXCEPT {
1262
+ return reverse_iterator(end());
1263
+ }
1264
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reverse_iterator
1265
+ rbegin() const _NOEXCEPT {
1266
+ return const_reverse_iterator(end());
1267
+ }
1268
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 reverse_iterator rend() _NOEXCEPT {
1269
+ return reverse_iterator(begin());
1270
+ }
1271
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reverse_iterator rend() const _NOEXCEPT {
1272
+ return const_reverse_iterator(begin());
1273
+ }
1274
+
1275
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_iterator cbegin() const _NOEXCEPT {
1276
+ return begin();
1277
+ }
1278
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_iterator cend() const _NOEXCEPT {
1279
+ return end();
1280
+ }
1281
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reverse_iterator
1282
+ crbegin() const _NOEXCEPT {
1283
+ return rbegin();
1284
+ }
1285
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reverse_iterator crend() const _NOEXCEPT {
1286
+ return rend();
1287
+ }
1288
+
1289
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type size() const _NOEXCEPT {
1290
+ return __is_long() ? __get_long_size() : __get_short_size();
1291
+ }
1292
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type length() const _NOEXCEPT {
1293
+ return size();
1294
+ }
1295
+
1296
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type max_size() const _NOEXCEPT {
1297
+ if (size_type __m = __alloc_traits::max_size(__alloc_); __m <= std::numeric_limits<size_type>::max() / 2) {
1298
+ size_type __res = __m - __alignment;
1299
+
1300
+ // When the __endian_factor == 2, our string representation assumes that the capacity
1301
+ // (including the null terminator) is always even, so we have to make sure the lowest bit isn't set when the
1302
+ // string grows to max_size()
1303
+ if (__endian_factor == 2)
1304
+ __res &= ~size_type(1);
1305
+
1306
+ // We have to allocate space for the null terminator, but max_size() doesn't include it.
1307
+ return __res - 1;
1308
+ } else {
1309
+ bool __uses_lsb = __endian_factor == 2;
1310
+ return __uses_lsb ? __m - __alignment - 1 : (__m / 2) - __alignment - 1;
1311
+ }
1312
+ }
1313
+
1314
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type capacity() const _NOEXCEPT {
1315
+ return (__is_long() ? __get_long_cap() : static_cast<size_type>(__min_cap)) - 1;
1316
+ }
1317
+
1318
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void resize(size_type __n, value_type __c);
1319
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void resize(size_type __n) { resize(__n, value_type()); }
1320
+
1321
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void reserve(size_type __requested_capacity);
1322
+
1323
+ # if _LIBCPP_STD_VER >= 23
1324
+ template <class _Op>
1325
+ _LIBCPP_HIDE_FROM_ABI constexpr void resize_and_overwrite(size_type __n, _Op __op) {
1326
+ using __result_type = decltype(std::move(__op)(data(), auto(__n)));
1327
+ static_assert(__integer_like<__result_type>, "Operation return type must be integer-like");
1328
+ size_type __sz = size();
1329
+ size_type __cap = capacity();
1330
+ if (__n > __cap)
1331
+ __grow_by_without_replace(__cap, __n - __cap, __sz, __sz, 0);
1332
+ __annotate_delete();
1333
+ __set_size(__n);
1334
+ __annotate_new(__n);
1335
+ __erase_to_end(std::move(__op)(data(), auto(__n)));
1336
+ }
1337
+ # endif
1338
+
1339
+ # if _LIBCPP_STD_VER < 26 || defined(_LIBCPP_ENABLE_CXX26_REMOVED_STRING_RESERVE)
1340
+ _LIBCPP_DEPRECATED_IN_CXX20 _LIBCPP_HIDE_FROM_ABI void reserve() _NOEXCEPT { shrink_to_fit(); }
1341
+ # endif
1342
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void shrink_to_fit() _NOEXCEPT;
1343
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void clear() _NOEXCEPT;
1344
+
1345
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool empty() const _NOEXCEPT {
1346
+ return size() == 0;
1347
+ }
1348
+
1349
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reference
1350
+ operator[](size_type __pos) const _NOEXCEPT {
1351
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__pos <= size(), "string index out of bounds");
1352
+ if (__builtin_constant_p(__pos) && !__fits_in_sso(__pos)) {
1353
+ return *(__get_long_pointer() + __pos);
1354
+ }
1355
+ return *(data() + __pos);
1356
+ }
1357
+
1358
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 reference
1359
+ operator[](size_type __pos) _NOEXCEPT {
1360
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__pos <= size(), "string index out of bounds");
1361
+ if (__builtin_constant_p(__pos) && !__fits_in_sso(__pos)) {
1362
+ return *(__get_long_pointer() + __pos);
1363
+ }
1364
+ return *(__get_pointer() + __pos);
1365
+ }
1366
+
1367
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reference at(size_type __n) const;
1368
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 reference at(size_type __n);
1369
+
1370
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator+=(const basic_string& __str) {
1371
+ return append(__str);
1372
+ }
1373
+
1374
+ template <class _Tp,
1375
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1376
+ !is_same<__remove_cvref_t<_Tp>, basic_string >::value,
1377
+ int> = 0>
1378
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator+=(const _Tp& __t) {
1379
+ __self_view __sv = __t;
1380
+ return append(__sv);
1381
+ }
1382
+
1383
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1384
+ operator+=(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s) {
1385
+ return append(__s);
1386
+ }
1387
+
1388
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator+=(value_type __c) {
1389
+ push_back(__c);
1390
+ return *this;
1391
+ }
1392
+
1393
+ # ifndef _LIBCPP_CXX03_LANG
1394
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& operator+=(initializer_list<value_type> __il) {
1395
+ return append(__il);
1396
+ }
1397
+ # endif // _LIBCPP_CXX03_LANG
1398
+
1399
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& append(const basic_string& __str) {
1400
+ return append(__str.data(), __str.size());
1401
+ }
1402
+
1403
+ template <class _Tp,
1404
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1405
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1406
+ int> = 0>
1407
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& append(const _Tp& __t) {
1408
+ __self_view __sv = __t;
1409
+ return append(__sv.data(), __sv.size());
1410
+ }
1411
+
1412
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& append(const basic_string& __str, size_type __pos, size_type __n = npos);
1413
+
1414
+ template <class _Tp,
1415
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1416
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1417
+ int> = 0>
1418
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1419
+ append(const _Tp& __t, size_type __pos, size_type __n = npos) {
1420
+ __self_view __sv = __t;
1421
+ size_type __sz = __sv.size();
1422
+ if (__pos > __sz)
1423
+ __throw_out_of_range();
1424
+ return append(__sv.data() + __pos, std::min(__n, __sz - __pos));
1425
+ }
1426
+
1427
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& append(const value_type* __s, size_type __n)
1428
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero");
1429
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& append(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s);
1430
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& append(size_type __n, value_type __c);
1431
+
1432
+ template <class _InputIterator, __enable_if_t<__has_exactly_input_iterator_category<_InputIterator>::value, int> = 0>
1433
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1434
+ append(_InputIterator __first, _InputIterator __last) {
1435
+ const basic_string __temp(__first, __last, __alloc_);
1436
+ append(__temp.data(), __temp.size());
1437
+ return *this;
1438
+ }
1439
+
1440
+ template <class _ForwardIterator, __enable_if_t<__has_forward_iterator_category<_ForwardIterator>::value, int> = 0>
1441
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1442
+ append(_ForwardIterator __first, _ForwardIterator __last) {
1443
+ size_type __sz = size();
1444
+ size_type __cap = capacity();
1445
+ size_type __n = static_cast<size_type>(std::distance(__first, __last));
1446
+ if (__n == 0)
1447
+ return *this;
1448
+
1449
+ if (__string_is_trivial_iterator_v<_ForwardIterator> && !__addr_in_range(*__first)) {
1450
+ if (__cap - __sz < __n)
1451
+ __grow_by_without_replace(__cap, __sz + __n - __cap, __sz, __sz, 0);
1452
+ __annotate_increase(__n);
1453
+ auto __end = __copy_non_overlapping_range(__first, __last, std::__to_address(__get_pointer() + __sz));
1454
+ traits_type::assign(*__end, value_type());
1455
+ __set_size(__sz + __n);
1456
+ return *this;
1457
+ } else {
1458
+ const basic_string __temp(__first, __last, __alloc_);
1459
+ return append(__temp.data(), __temp.size());
1460
+ }
1461
+ }
1462
+
1463
+ # if _LIBCPP_STD_VER >= 23
1464
+ template <_ContainerCompatibleRange<_CharT> _Range>
1465
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string& append_range(_Range&& __range) {
1466
+ insert_range(end(), std::forward<_Range>(__range));
1467
+ return *this;
1468
+ }
1469
+ # endif
1470
+
1471
+ # ifndef _LIBCPP_CXX03_LANG
1472
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& append(initializer_list<value_type> __il) {
1473
+ return append(__il.begin(), __il.size());
1474
+ }
1475
+ # endif // _LIBCPP_CXX03_LANG
1476
+
1477
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void push_back(value_type __c);
1478
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void pop_back();
1479
+
1480
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 reference front() _NOEXCEPT {
1481
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "string::front(): string is empty");
1482
+ return *__get_pointer();
1483
+ }
1484
+
1485
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reference front() const _NOEXCEPT {
1486
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "string::front(): string is empty");
1487
+ return *data();
1488
+ }
1489
+
1490
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 reference back() _NOEXCEPT {
1491
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "string::back(): string is empty");
1492
+ return *(__get_pointer() + size() - 1);
1493
+ }
1494
+
1495
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_reference back() const _NOEXCEPT {
1496
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "string::back(): string is empty");
1497
+ return *(data() + size() - 1);
1498
+ }
1499
+
1500
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1501
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(const _Tp& __t) {
1502
+ __self_view __sv = __t;
1503
+ return assign(__sv.data(), __sv.size());
1504
+ }
1505
+
1506
+ # if _LIBCPP_STD_VER >= 20
1507
+ _LIBCPP_HIDE_FROM_ABI constexpr void __move_assign(basic_string&& __str, size_type __pos, size_type __len) {
1508
+ // Pilfer the allocation from __str.
1509
+ _LIBCPP_ASSERT_INTERNAL(__alloc_ == __str.__alloc_, "__move_assign called with wrong allocator");
1510
+ size_type __old_sz = __str.size();
1511
+ if (!__str.__is_long())
1512
+ __str.__annotate_delete();
1513
+ __rep_ = __str.__rep_;
1514
+ __str.__rep_ = __rep();
1515
+ __str.__annotate_new(0);
1516
+
1517
+ _Traits::move(data(), data() + __pos, __len);
1518
+ __set_size(__len);
1519
+ _Traits::assign(data()[__len], value_type());
1520
+
1521
+ if (!__is_long()) {
1522
+ __annotate_new(__len);
1523
+ } else if (__old_sz > __len) {
1524
+ __annotate_shrink(__old_sz);
1525
+ }
1526
+ }
1527
+ # endif
1528
+
1529
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(const basic_string& __str) {
1530
+ return *this = __str;
1531
+ }
1532
+ # ifndef _LIBCPP_CXX03_LANG
1533
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1534
+ assign(basic_string&& __str) noexcept(__noexcept_move_assign_container<_Allocator, __alloc_traits>::value) {
1535
+ *this = std::move(__str);
1536
+ return *this;
1537
+ }
1538
+ # endif
1539
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(const basic_string& __str, size_type __pos, size_type __n = npos);
1540
+
1541
+ template <class _Tp,
1542
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1543
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1544
+ int> = 0>
1545
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1546
+ assign(const _Tp& __t, size_type __pos, size_type __n = npos) {
1547
+ __self_view __sv = __t;
1548
+ size_type __sz = __sv.size();
1549
+ if (__pos > __sz)
1550
+ __throw_out_of_range();
1551
+ return assign(__sv.data() + __pos, std::min(__n, __sz - __pos));
1552
+ }
1553
+
1554
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(const value_type* __s, size_type __n)
1555
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero");
1556
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s);
1557
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(size_type __n, value_type __c);
1558
+
1559
+ template <class _InputIterator, __enable_if_t<__has_exactly_input_iterator_category<_InputIterator>::value, int> = 0>
1560
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1561
+ assign(_InputIterator __first, _InputIterator __last) {
1562
+ __assign_with_sentinel(__first, __last);
1563
+ return *this;
1564
+ }
1565
+
1566
+ template <class _ForwardIterator, __enable_if_t<__has_forward_iterator_category<_ForwardIterator>::value, int> = 0>
1567
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1568
+ assign(_ForwardIterator __first, _ForwardIterator __last) {
1569
+ if (__string_is_trivial_iterator_v<_ForwardIterator>) {
1570
+ size_type __n = static_cast<size_type>(std::distance(__first, __last));
1571
+ __assign_trivial(__first, __last, __n);
1572
+ } else {
1573
+ __assign_with_sentinel(__first, __last);
1574
+ }
1575
+
1576
+ return *this;
1577
+ }
1578
+
1579
+ # if _LIBCPP_STD_VER >= 23
1580
+ template <_ContainerCompatibleRange<_CharT> _Range>
1581
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string& assign_range(_Range&& __range) {
1582
+ if constexpr (__string_is_trivial_iterator_v<ranges::iterator_t<_Range>> &&
1583
+ (ranges::forward_range<_Range> || ranges::sized_range<_Range>)) {
1584
+ size_type __n = static_cast<size_type>(ranges::distance(__range));
1585
+ __assign_trivial(ranges::begin(__range), ranges::end(__range), __n);
1586
+
1587
+ } else {
1588
+ __assign_with_sentinel(ranges::begin(__range), ranges::end(__range));
1589
+ }
1590
+
1591
+ return *this;
1592
+ }
1593
+ # endif
1594
+
1595
+ # ifndef _LIBCPP_CXX03_LANG
1596
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& assign(initializer_list<value_type> __il) {
1597
+ return assign(__il.begin(), __il.size());
1598
+ }
1599
+ # endif // _LIBCPP_CXX03_LANG
1600
+
1601
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1602
+ insert(size_type __pos1, const basic_string& __str) {
1603
+ return insert(__pos1, __str.data(), __str.size());
1604
+ }
1605
+
1606
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1607
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& insert(size_type __pos1, const _Tp& __t) {
1608
+ __self_view __sv = __t;
1609
+ return insert(__pos1, __sv.data(), __sv.size());
1610
+ }
1611
+
1612
+ template <class _Tp,
1613
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1614
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1615
+ int> = 0>
1616
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1617
+ insert(size_type __pos1, const _Tp& __t, size_type __pos2, size_type __n = npos) {
1618
+ __self_view __sv = __t;
1619
+ size_type __str_sz = __sv.size();
1620
+ if (__pos2 > __str_sz)
1621
+ __throw_out_of_range();
1622
+ return insert(__pos1, __sv.data() + __pos2, std::min(__n, __str_sz - __pos2));
1623
+ }
1624
+
1625
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1626
+ insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n = npos);
1627
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& insert(size_type __pos, const value_type* __s, size_type __n)
1628
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero");
1629
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& insert(size_type __pos, const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s);
1630
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& insert(size_type __pos, size_type __n, value_type __c);
1631
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator insert(const_iterator __pos, value_type __c);
1632
+
1633
+ # if _LIBCPP_STD_VER >= 23
1634
+ template <_ContainerCompatibleRange<_CharT> _Range>
1635
+ _LIBCPP_HIDE_FROM_ABI constexpr iterator insert_range(const_iterator __position, _Range&& __range) {
1636
+ if constexpr (ranges::forward_range<_Range> || ranges::sized_range<_Range>) {
1637
+ auto __n = static_cast<size_type>(ranges::distance(__range));
1638
+ return __insert_with_size(__position, ranges::begin(__range), ranges::end(__range), __n);
1639
+
1640
+ } else {
1641
+ basic_string __temp(from_range, std::forward<_Range>(__range), __alloc_);
1642
+ return insert(__position, __temp.data(), __temp.data() + __temp.size());
1643
+ }
1644
+ }
1645
+ # endif
1646
+
1647
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator
1648
+ insert(const_iterator __pos, size_type __n, value_type __c) {
1649
+ difference_type __p = __pos - begin();
1650
+ insert(static_cast<size_type>(__p), __n, __c);
1651
+ return begin() + __p;
1652
+ }
1653
+
1654
+ template <class _InputIterator, __enable_if_t<__has_exactly_input_iterator_category<_InputIterator>::value, int> = 0>
1655
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator
1656
+ insert(const_iterator __pos, _InputIterator __first, _InputIterator __last) {
1657
+ const basic_string __temp(__first, __last, __alloc_);
1658
+ return insert(__pos, __temp.data(), __temp.data() + __temp.size());
1659
+ }
1660
+
1661
+ template <class _ForwardIterator, __enable_if_t<__has_forward_iterator_category<_ForwardIterator>::value, int> = 0>
1662
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator
1663
+ insert(const_iterator __pos, _ForwardIterator __first, _ForwardIterator __last) {
1664
+ auto __n = static_cast<size_type>(std::distance(__first, __last));
1665
+ return __insert_with_size(__pos, __first, __last, __n);
1666
+ }
1667
+
1668
+ # ifndef _LIBCPP_CXX03_LANG
1669
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator
1670
+ insert(const_iterator __pos, initializer_list<value_type> __il) {
1671
+ return insert(__pos, __il.begin(), __il.end());
1672
+ }
1673
+ # endif // _LIBCPP_CXX03_LANG
1674
+
1675
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& erase(size_type __pos = 0, size_type __n = npos);
1676
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator erase(const_iterator __pos);
1677
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator erase(const_iterator __first, const_iterator __last);
1678
+
1679
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1680
+ replace(size_type __pos1, size_type __n1, const basic_string& __str) {
1681
+ return replace(__pos1, __n1, __str.data(), __str.size());
1682
+ }
1683
+
1684
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1685
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1686
+ replace(size_type __pos1, size_type __n1, const _Tp& __t) {
1687
+ __self_view __sv = __t;
1688
+ return replace(__pos1, __n1, __sv.data(), __sv.size());
1689
+ }
1690
+
1691
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1692
+ replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2 = npos);
1693
+
1694
+ template <class _Tp,
1695
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
1696
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
1697
+ int> = 0>
1698
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1699
+ replace(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2 = npos) {
1700
+ __self_view __sv = __t;
1701
+ size_type __str_sz = __sv.size();
1702
+ if (__pos2 > __str_sz)
1703
+ __throw_out_of_range();
1704
+ return replace(__pos1, __n1, __sv.data() + __pos2, std::min(__n2, __str_sz - __pos2));
1705
+ }
1706
+
1707
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1708
+ replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2)
1709
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n2 != 0 && __s == nullptr, " if n2 is not zero");
1710
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1711
+ replace(size_type __pos, size_type __n1, const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s);
1712
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
1713
+
1714
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1715
+ replace(const_iterator __i1, const_iterator __i2, const basic_string& __str) {
1716
+ return replace(
1717
+ static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __str.data(), __str.size());
1718
+ }
1719
+
1720
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1721
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1722
+ replace(const_iterator __i1, const_iterator __i2, const _Tp& __t) {
1723
+ __self_view __sv = __t;
1724
+ return replace(__i1 - begin(), __i2 - __i1, __sv);
1725
+ }
1726
+
1727
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1728
+ replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n) {
1729
+ return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __s, __n);
1730
+ }
1731
+
1732
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1733
+ replace(const_iterator __i1, const_iterator __i2, const value_type* __s) {
1734
+ return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __s);
1735
+ }
1736
+
1737
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1738
+ replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c) {
1739
+ return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __n, __c);
1740
+ }
1741
+
1742
+ template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> = 0>
1743
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1744
+ replace(const_iterator __i1, const_iterator __i2, _InputIterator __j1, _InputIterator __j2) {
1745
+ const basic_string __temp(__j1, __j2, __alloc_);
1746
+ return replace(__i1, __i2, __temp);
1747
+ }
1748
+
1749
+ # if _LIBCPP_STD_VER >= 23
1750
+ template <_ContainerCompatibleRange<_CharT> _Range>
1751
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string&
1752
+ replace_with_range(const_iterator __i1, const_iterator __i2, _Range&& __range) {
1753
+ basic_string __temp(from_range, std::forward<_Range>(__range), __alloc_);
1754
+ return replace(__i1, __i2, __temp);
1755
+ }
1756
+ # endif
1757
+
1758
+ # ifndef _LIBCPP_CXX03_LANG
1759
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
1760
+ replace(const_iterator __i1, const_iterator __i2, initializer_list<value_type> __il) {
1761
+ return replace(__i1, __i2, __il.begin(), __il.end());
1762
+ }
1763
+ # endif // _LIBCPP_CXX03_LANG
1764
+
1765
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type copy(value_type* __s, size_type __n, size_type __pos = 0) const;
1766
+
1767
+ # if _LIBCPP_STD_VER <= 20
1768
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI
1769
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string substr(size_type __pos = 0, size_type __n = npos) const {
1770
+ return basic_string(*this, __pos, __n);
1771
+ }
1772
+ # else
1773
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr basic_string substr(size_type __pos = 0, size_type __n = npos) const& {
1774
+ return basic_string(*this, __pos, __n);
1775
+ }
1776
+
1777
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr basic_string substr(size_type __pos = 0, size_type __n = npos) && {
1778
+ return basic_string(std::move(*this), __pos, __n);
1779
+ }
1780
+ # endif
1781
+ # if _LIBCPP_STD_VER >= 26
1782
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr __self_view subview(size_type __pos = 0, size_type __n = npos) const {
1783
+ return __self_view(*this).subview(__pos, __n);
1784
+ }
1785
+ # endif
1786
+
1787
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void swap(basic_string& __str)
1788
+ # if _LIBCPP_STD_VER >= 14
1789
+ _NOEXCEPT;
1790
+ # else
1791
+ _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<allocator_type>);
1792
+ # endif
1793
+
1794
+ // [string.ops]
1795
+ // ------------
1796
+
1797
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const value_type* c_str() const _NOEXCEPT {
1798
+ return data();
1799
+ }
1800
+
1801
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const value_type* data() const _NOEXCEPT {
1802
+ return std::__to_address(__get_pointer());
1803
+ }
1804
+ # if _LIBCPP_STD_VER >= 17
1805
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 value_type* data() _NOEXCEPT {
1806
+ return std::__to_address(__get_pointer());
1807
+ }
1808
+ # endif
1809
+
1810
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 allocator_type get_allocator() const _NOEXCEPT {
1811
+ return __alloc_;
1812
+ }
1813
+
1814
+ // find
1815
+
1816
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1817
+ find(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT {
1818
+ return std::__str_find<value_type, size_type, traits_type, npos>(data(), size(), __str.data(), __pos, __str.size());
1819
+ }
1820
+
1821
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1822
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1823
+ find(const _Tp& __t, size_type __pos = 0) const _NOEXCEPT {
1824
+ __self_view __sv = __t;
1825
+ return std::__str_find<value_type, size_type, traits_type, npos>(data(), size(), __sv.data(), __pos, __sv.size());
1826
+ }
1827
+
1828
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1829
+ find(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT
1830
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero") {
1831
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::find(): received nullptr");
1832
+ return std::__str_find<value_type, size_type, traits_type, npos>(data(), size(), __s, __pos, __n);
1833
+ }
1834
+
1835
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1836
+ find(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s, size_type __pos = 0) const _NOEXCEPT {
1837
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::find(): received nullptr");
1838
+ return std::__str_find<value_type, size_type, traits_type, npos>(
1839
+ data(), size(), __s, __pos, traits_type::length(__s));
1840
+ }
1841
+
1842
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type find(value_type __c, size_type __pos = 0) const _NOEXCEPT {
1843
+ return std::__str_find<value_type, size_type, traits_type, npos>(data(), size(), __c, __pos);
1844
+ }
1845
+
1846
+ // rfind
1847
+
1848
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1849
+ rfind(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT {
1850
+ return std::__str_rfind<value_type, size_type, traits_type, npos>(
1851
+ data(), size(), __str.data(), __pos, __str.size());
1852
+ }
1853
+
1854
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1855
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1856
+ rfind(const _Tp& __t, size_type __pos = npos) const _NOEXCEPT {
1857
+ __self_view __sv = __t;
1858
+ return std::__str_rfind<value_type, size_type, traits_type, npos>(data(), size(), __sv.data(), __pos, __sv.size());
1859
+ }
1860
+
1861
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1862
+ rfind(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT
1863
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero") {
1864
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::rfind(): received nullptr");
1865
+ return std::__str_rfind<value_type, size_type, traits_type, npos>(data(), size(), __s, __pos, __n);
1866
+ }
1867
+
1868
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1869
+ rfind(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s, size_type __pos = npos) const _NOEXCEPT {
1870
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::rfind(): received nullptr");
1871
+ return std::__str_rfind<value_type, size_type, traits_type, npos>(
1872
+ data(), size(), __s, __pos, traits_type::length(__s));
1873
+ }
1874
+
1875
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1876
+ rfind(value_type __c, size_type __pos = npos) const _NOEXCEPT {
1877
+ return std::__str_rfind<value_type, size_type, traits_type, npos>(data(), size(), __c, __pos);
1878
+ }
1879
+
1880
+ // find_first_of
1881
+
1882
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1883
+ find_first_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT {
1884
+ return std::__str_find_first_of<value_type, size_type, traits_type, npos>(
1885
+ data(), size(), __str.data(), __pos, __str.size());
1886
+ }
1887
+
1888
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1889
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1890
+ find_first_of(const _Tp& __t, size_type __pos = 0) const _NOEXCEPT {
1891
+ __self_view __sv = __t;
1892
+ return std::__str_find_first_of<value_type, size_type, traits_type, npos>(
1893
+ data(), size(), __sv.data(), __pos, __sv.size());
1894
+ }
1895
+
1896
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1897
+ find_first_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT
1898
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero") {
1899
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::find_first_of(): received nullptr");
1900
+ return std::__str_find_first_of<value_type, size_type, traits_type, npos>(data(), size(), __s, __pos, __n);
1901
+ }
1902
+
1903
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1904
+ find_first_of(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s, size_type __pos = 0) const _NOEXCEPT {
1905
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::find_first_of(): received nullptr");
1906
+ return std::__str_find_first_of<value_type, size_type, traits_type, npos>(
1907
+ data(), size(), __s, __pos, traits_type::length(__s));
1908
+ }
1909
+
1910
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1911
+ find_first_of(value_type __c, size_type __pos = 0) const _NOEXCEPT {
1912
+ return find(__c, __pos);
1913
+ }
1914
+
1915
+ // find_last_of
1916
+
1917
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1918
+ find_last_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT {
1919
+ return std::__str_find_last_of<value_type, size_type, traits_type, npos>(
1920
+ data(), size(), __str.data(), __pos, __str.size());
1921
+ }
1922
+
1923
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1924
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1925
+ find_last_of(const _Tp& __t, size_type __pos = npos) const _NOEXCEPT {
1926
+ __self_view __sv = __t;
1927
+ return std::__str_find_last_of<value_type, size_type, traits_type, npos>(
1928
+ data(), size(), __sv.data(), __pos, __sv.size());
1929
+ }
1930
+
1931
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1932
+ find_last_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT
1933
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero") {
1934
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::find_last_of(): received nullptr");
1935
+ return std::__str_find_last_of<value_type, size_type, traits_type, npos>(data(), size(), __s, __pos, __n);
1936
+ }
1937
+
1938
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1939
+ find_last_of(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s, size_type __pos = npos) const _NOEXCEPT {
1940
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::find_last_of(): received nullptr");
1941
+ return std::__str_find_last_of<value_type, size_type, traits_type, npos>(
1942
+ data(), size(), __s, __pos, traits_type::length(__s));
1943
+ }
1944
+
1945
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1946
+ find_last_of(value_type __c, size_type __pos = npos) const _NOEXCEPT {
1947
+ return rfind(__c, __pos);
1948
+ }
1949
+
1950
+ // find_first_not_of
1951
+
1952
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1953
+ find_first_not_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT {
1954
+ return std::__str_find_first_not_of<value_type, size_type, traits_type, npos>(
1955
+ data(), size(), __str.data(), __pos, __str.size());
1956
+ }
1957
+
1958
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1959
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1960
+ find_first_not_of(const _Tp& __t, size_type __pos = 0) const _NOEXCEPT {
1961
+ __self_view __sv = __t;
1962
+ return std::__str_find_first_not_of<value_type, size_type, traits_type, npos>(
1963
+ data(), size(), __sv.data(), __pos, __sv.size());
1964
+ }
1965
+
1966
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1967
+ find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT
1968
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero") {
1969
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::find_first_not_of(): received nullptr");
1970
+ return std::__str_find_first_not_of<value_type, size_type, traits_type, npos>(data(), size(), __s, __pos, __n);
1971
+ }
1972
+
1973
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1974
+ find_first_not_of(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s, size_type __pos = 0) const _NOEXCEPT {
1975
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::find_first_not_of(): received nullptr");
1976
+ return std::__str_find_first_not_of<value_type, size_type, traits_type, npos>(
1977
+ data(), size(), __s, __pos, traits_type::length(__s));
1978
+ }
1979
+
1980
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1981
+ find_first_not_of(value_type __c, size_type __pos = 0) const _NOEXCEPT {
1982
+ return std::__str_find_first_not_of<value_type, size_type, traits_type, npos>(data(), size(), __c, __pos);
1983
+ }
1984
+
1985
+ // find_last_not_of
1986
+
1987
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1988
+ find_last_not_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT {
1989
+ return std::__str_find_last_not_of<value_type, size_type, traits_type, npos>(
1990
+ data(), size(), __str.data(), __pos, __str.size());
1991
+ }
1992
+
1993
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
1994
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
1995
+ find_last_not_of(const _Tp& __t, size_type __pos = npos) const _NOEXCEPT {
1996
+ __self_view __sv = __t;
1997
+ return std::__str_find_last_not_of<value_type, size_type, traits_type, npos>(
1998
+ data(), size(), __sv.data(), __pos, __sv.size());
1999
+ }
2000
+
2001
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
2002
+ find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT
2003
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n != 0 && __s == nullptr, " if n is not zero") {
2004
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::find_last_not_of(): received nullptr");
2005
+ return std::__str_find_last_not_of<value_type, size_type, traits_type, npos>(data(), size(), __s, __pos, __n);
2006
+ }
2007
+
2008
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
2009
+ find_last_not_of(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s, size_type __pos = npos) const _NOEXCEPT {
2010
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::find_last_not_of(): received nullptr");
2011
+ return std::__str_find_last_not_of<value_type, size_type, traits_type, npos>(
2012
+ data(), size(), __s, __pos, traits_type::length(__s));
2013
+ }
2014
+
2015
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
2016
+ find_last_not_of(value_type __c, size_type __pos = npos) const _NOEXCEPT {
2017
+ return std::__str_find_last_not_of<value_type, size_type, traits_type, npos>(data(), size(), __c, __pos);
2018
+ }
2019
+
2020
+ // compare
2021
+
2022
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2023
+ compare(const basic_string& __str) const _NOEXCEPT {
2024
+ return compare(__self_view(__str));
2025
+ }
2026
+
2027
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
2028
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 int compare(const _Tp& __t) const _NOEXCEPT {
2029
+ __self_view __sv = __t;
2030
+ size_t __lhs_sz = size();
2031
+ size_t __rhs_sz = __sv.size();
2032
+ int __result = traits_type::compare(data(), __sv.data(), std::min(__lhs_sz, __rhs_sz));
2033
+ if (__result != 0)
2034
+ return __result;
2035
+ if (__lhs_sz < __rhs_sz)
2036
+ return -1;
2037
+ if (__lhs_sz > __rhs_sz)
2038
+ return 1;
2039
+ return 0;
2040
+ }
2041
+
2042
+ template <class _Tp, __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp>, int> = 0>
2043
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2044
+ compare(size_type __pos1, size_type __n1, const _Tp& __t) const {
2045
+ __self_view __sv = __t;
2046
+ return compare(__pos1, __n1, __sv.data(), __sv.size());
2047
+ }
2048
+
2049
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2050
+ compare(size_type __pos1, size_type __n1, const basic_string& __str) const {
2051
+ return compare(__pos1, __n1, __str.data(), __str.size());
2052
+ }
2053
+
2054
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2055
+ compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2 = npos) const {
2056
+ return compare(__pos1, __n1, __self_view(__str), __pos2, __n2);
2057
+ }
2058
+
2059
+ template <class _Tp,
2060
+ __enable_if_t<__can_be_converted_to_string_view_v<_CharT, _Traits, _Tp> &&
2061
+ !is_same<__remove_cvref_t<_Tp>, basic_string>::value,
2062
+ int> = 0>
2063
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2064
+ compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2 = npos) const {
2065
+ __self_view __sv = __t;
2066
+ return __self_view(*this).substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2));
2067
+ }
2068
+
2069
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2070
+ compare(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s) const _NOEXCEPT {
2071
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::compare(): received nullptr");
2072
+ return compare(0, npos, __s, traits_type::length(__s));
2073
+ }
2074
+
2075
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2076
+ compare(size_type __pos1, size_type __n1, const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s) const {
2077
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::compare(): received nullptr");
2078
+ return compare(__pos1, __n1, __s, traits_type::length(__s));
2079
+ }
2080
+
2081
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 int
2082
+ compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const
2083
+ _LIBCPP_DIAGNOSE_NULLPTR_IF(__n2 != 0 && __s == nullptr, " if n2 is not zero");
2084
+
2085
+ // starts_with
2086
+
2087
+ # if _LIBCPP_STD_VER >= 20
2088
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool starts_with(__self_view __sv) const noexcept {
2089
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).starts_with(__sv);
2090
+ }
2091
+
2092
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool starts_with(value_type __c) const noexcept {
2093
+ return !empty() && _Traits::eq(front(), __c);
2094
+ }
2095
+
2096
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool
2097
+ starts_with(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s) const noexcept {
2098
+ return starts_with(__self_view(__s));
2099
+ }
2100
+
2101
+ // ends_with
2102
+
2103
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool ends_with(__self_view __sv) const noexcept {
2104
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).ends_with(__sv);
2105
+ }
2106
+
2107
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool ends_with(value_type __c) const noexcept {
2108
+ return !empty() && _Traits::eq(back(), __c);
2109
+ }
2110
+
2111
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool
2112
+ ends_with(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s) const noexcept {
2113
+ return ends_with(__self_view(__s));
2114
+ }
2115
+ # endif
2116
+
2117
+ // contains
2118
+
2119
+ # if _LIBCPP_STD_VER >= 23
2120
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool contains(__self_view __sv) const noexcept {
2121
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).contains(__sv);
2122
+ }
2123
+
2124
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool contains(value_type __c) const noexcept {
2125
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).contains(__c);
2126
+ }
2127
+
2128
+ [[__nodiscard__]] constexpr _LIBCPP_HIDE_FROM_ABI bool
2129
+ contains(const value_type* _LIBCPP_DIAGNOSE_NULLPTR __s) const {
2130
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).contains(__s);
2131
+ }
2132
+ # endif
2133
+
2134
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool __invariants() const;
2135
+
2136
+ private:
2137
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS bool
2138
+ __is_long() const _NOEXCEPT {
2139
+ if (__libcpp_is_constant_evaluated() && __builtin_constant_p(__rep_.__l.__is_long_)) {
2140
+ return __rep_.__l.__is_long_;
2141
+ }
2142
+ return __rep_.__s.__is_long_;
2143
+ }
2144
+
2145
+ _LIBCPP_CONSTEXPR _LIBCPP_HIDE_FROM_ABI static bool __fits_in_sso(size_type __sz) { return __sz < __min_cap; }
2146
+
2147
+ template <class _Iterator, class _Sentinel>
2148
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
2149
+ __assign_trivial(_Iterator __first, _Sentinel __last, size_type __n);
2150
+
2151
+ template <class _Iterator, class _Sentinel>
2152
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __assign_with_sentinel(_Iterator __first, _Sentinel __last);
2153
+
2154
+ // Copy [__first, __last) into [__dest, __dest + (__last - __first)). Assumes that the ranges don't overlap.
2155
+ template <class _ForwardIter, class _Sent>
2156
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 static value_type*
2157
+ __copy_non_overlapping_range(_ForwardIter __first, _Sent __last, value_type* __dest) {
2158
+ # ifndef _LIBCPP_CXX03_LANG
2159
+ if constexpr (__libcpp_is_contiguous_iterator<_ForwardIter>::value &&
2160
+ is_same<value_type, __remove_cvref_t<decltype(*__first)>>::value &&
2161
+ is_same<_ForwardIter, _Sent>::value) {
2162
+ _LIBCPP_ASSERT_INTERNAL(
2163
+ !std::__is_overlapping_range(std::__to_address(__first), std::__to_address(__last), __dest),
2164
+ "__copy_non_overlapping_range called with an overlapping range!");
2165
+ traits_type::copy(__dest, std::__to_address(__first), __last - __first);
2166
+ return __dest + (__last - __first);
2167
+ }
2168
+ # endif
2169
+
2170
+ for (; __first != __last; ++__first)
2171
+ traits_type::assign(*__dest++, *__first);
2172
+ return __dest;
2173
+ }
2174
+
2175
+ template <class _ForwardIterator, class _Sentinel>
2176
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 iterator
2177
+ __insert_from_safe_copy(size_type __n, size_type __ip, _ForwardIterator __first, _Sentinel __last) {
2178
+ size_type __sz = size();
2179
+ size_type __cap = capacity();
2180
+ value_type* __p;
2181
+ if (__cap - __sz >= __n) {
2182
+ __annotate_increase(__n);
2183
+ __p = std::__to_address(__get_pointer());
2184
+ size_type __n_move = __sz - __ip;
2185
+ if (__n_move != 0)
2186
+ traits_type::move(__p + __ip + __n, __p + __ip, __n_move);
2187
+ } else {
2188
+ __grow_by_without_replace(__cap, __sz + __n - __cap, __sz, __ip, 0, __n);
2189
+ __p = std::__to_address(__get_long_pointer());
2190
+ }
2191
+ __sz += __n;
2192
+ __set_size(__sz);
2193
+ traits_type::assign(__p[__sz], value_type());
2194
+ __copy_non_overlapping_range(std::move(__first), std::move(__last), __p + __ip);
2195
+
2196
+ return begin() + __ip;
2197
+ }
2198
+
2199
+ template <class _Iterator, class _Sentinel>
2200
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 iterator
2201
+ __insert_with_size(const_iterator __pos, _Iterator __first, _Sentinel __last, size_type __n);
2202
+
2203
+ // internal buffer accessors
2204
+ // -------------------------
2205
+
2206
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS void
2207
+ __set_short_size(size_type __s) _NOEXCEPT {
2208
+ _LIBCPP_ASSERT_INTERNAL(__s < __min_cap, "__s should never be greater than or equal to the short string capacity");
2209
+ __rep_.__s.__size_ = __s;
2210
+ __rep_.__s.__is_long_ = false;
2211
+ }
2212
+
2213
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS size_type
2214
+ __get_short_size() const _NOEXCEPT {
2215
+ _LIBCPP_ASSERT_INTERNAL(!__rep_.__s.__is_long_, "String has to be short when trying to get the short size");
2216
+ return __rep_.__s.__size_;
2217
+ }
2218
+
2219
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __set_long_size(size_type __s) _NOEXCEPT {
2220
+ __rep_.__l.__size_ = __s;
2221
+ }
2222
+
2223
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type __get_long_size() const _NOEXCEPT {
2224
+ _LIBCPP_ASSERT_INTERNAL(__rep_.__l.__is_long_, "String has to be long when trying to get the long size");
2225
+ return __rep_.__l.__size_;
2226
+ }
2227
+
2228
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __set_size(size_type __s) _NOEXCEPT {
2229
+ if (__is_long())
2230
+ __set_long_size(__s);
2231
+ else
2232
+ __set_short_size(__s);
2233
+ }
2234
+
2235
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type __get_long_cap() const _NOEXCEPT {
2236
+ _LIBCPP_ASSERT_INTERNAL(__rep_.__l.__is_long_, "String has to be long when trying to get the long capacity");
2237
+ return __rep_.__l.__cap_ * __endian_factor;
2238
+ }
2239
+
2240
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pointer __get_long_pointer() _NOEXCEPT {
2241
+ _LIBCPP_ASSERT_INTERNAL(__rep_.__l.__is_long_, "String has to be long when trying to get the long pointer");
2242
+ return _LIBCPP_ASAN_VOLATILE_WRAPPER(__rep_.__l.__data_);
2243
+ }
2244
+
2245
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_pointer __get_long_pointer() const _NOEXCEPT {
2246
+ _LIBCPP_ASSERT_INTERNAL(__rep_.__l.__is_long_, "String has to be long when trying to get the long pointer");
2247
+ return _LIBCPP_ASAN_VOLATILE_WRAPPER(__rep_.__l.__data_);
2248
+ }
2249
+
2250
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS pointer
2251
+ __get_short_pointer() _NOEXCEPT {
2252
+ return _LIBCPP_ASAN_VOLATILE_WRAPPER(pointer_traits<pointer>::pointer_to(__rep_.__s.__data_[0]));
2253
+ }
2254
+
2255
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS const_pointer
2256
+ __get_short_pointer() const _NOEXCEPT {
2257
+ return _LIBCPP_ASAN_VOLATILE_WRAPPER(pointer_traits<const_pointer>::pointer_to(__rep_.__s.__data_[0]));
2258
+ }
2259
+
2260
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pointer __get_pointer() _NOEXCEPT {
2261
+ return __is_long() ? __get_long_pointer() : __get_short_pointer();
2262
+ }
2263
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 const_pointer __get_pointer() const _NOEXCEPT {
2264
+ return __is_long() ? __get_long_pointer() : __get_short_pointer();
2265
+ }
2266
+
2267
+ // Internal buffer management
2268
+ // --------------------------
2269
+ //
2270
+ // These functions are only responsible for managing the buffer itself, not the value inside the buffer. As such,
2271
+ // none of these facilities ensure that there is a null terminator at `data()[size()]`.
2272
+
2273
+ // Allocate a buffer of __capacity size with __alloc and return it
2274
+ _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR_SINCE_CXX20 __long
2275
+ __allocate_long_buffer(_Allocator& __alloc, size_type __capacity) {
2276
+ _LIBCPP_ASSERT_INTERNAL(!__fits_in_sso(__capacity),
2277
+ "Trying to allocate long buffer for a capacity what would fit into the small buffer");
2278
+ auto __buffer = std::__allocate_at_least(__alloc, __align_allocation_size(__capacity));
2279
+
2280
+ if (__libcpp_is_constant_evaluated()) {
2281
+ for (size_type __i = 0; __i != __buffer.count; ++__i)
2282
+ std::__construct_at(std::addressof(__buffer.ptr[__i]));
2283
+ }
2284
+
2285
+ return __long(__buffer, __capacity);
2286
+ }
2287
+
2288
+ // Replace the current buffer with __new_rep. Deallocate the old long buffer if it exists.
2289
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __reset_internal_buffer(__rep __new_rep = __short()) {
2290
+ __annotate_delete();
2291
+ if (__is_long())
2292
+ __alloc_traits::deallocate(__alloc_, __get_long_pointer(), __get_long_cap());
2293
+ __rep_ = __new_rep;
2294
+ }
2295
+
2296
+ // Initialize the internal buffer to hold __size elements
2297
+ // The elements and null terminator have to be set by the caller
2298
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pointer __init_internal_buffer(size_type __size) {
2299
+ if (__libcpp_is_constant_evaluated())
2300
+ __rep_ = __rep();
2301
+
2302
+ if (__size > max_size())
2303
+ __throw_length_error();
2304
+
2305
+ if (__fits_in_sso(__size)) {
2306
+ __set_short_size(__size);
2307
+ __annotate_new(__size);
2308
+ return __get_short_pointer();
2309
+ } else {
2310
+ __rep_.__l = __allocate_long_buffer(__alloc_, __size);
2311
+ __annotate_new(__size);
2312
+ return __get_long_pointer();
2313
+ }
2314
+ }
2315
+
2316
+ // ASan annotation helpers
2317
+ // -----------------------
2318
+
2319
+ // The following functions are no-ops outside of AddressSanitizer mode.
2320
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2321
+ __annotate_contiguous_container(const void* __old_mid, const void* __new_mid) const {
2322
+ (void)__old_mid;
2323
+ (void)__new_mid;
2324
+ # if _LIBCPP_INSTRUMENTED_WITH_ASAN
2325
+ # if defined(__APPLE__)
2326
+ // TODO: remove after addressing issue #96099 (https://llvm.org/PR96099)
2327
+ if (!__is_long())
2328
+ return;
2329
+ # endif
2330
+ std::__annotate_contiguous_container<_Allocator>(data(), data() + capacity() + 1, __old_mid, __new_mid);
2331
+ # endif
2332
+ }
2333
+
2334
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_new(size_type __current_size) const _NOEXCEPT {
2335
+ __annotate_contiguous_container(data() + capacity() + 1, data() + __current_size + 1);
2336
+ }
2337
+
2338
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_delete() const _NOEXCEPT {
2339
+ __annotate_contiguous_container(data() + size() + 1, data() + capacity() + 1);
2340
+ }
2341
+
2342
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_increase(size_type __n) const _NOEXCEPT {
2343
+ __annotate_contiguous_container(data() + size() + 1, data() + size() + 1 + __n);
2344
+ }
2345
+
2346
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __annotate_shrink(size_type __old_size) const _NOEXCEPT {
2347
+ __annotate_contiguous_container(data() + __old_size + 1, data() + size() + 1);
2348
+ }
2349
+
2350
+ // Disable ASan annotations and enable them again when going out of scope. It is assumed that the string is in a valid
2351
+ // state at that point, so `size()` can be called safely.
2352
+ struct [[__nodiscard__]] __annotation_guard {
2353
+ __annotation_guard(const __annotation_guard&) = delete;
2354
+ __annotation_guard& operator=(const __annotation_guard&) = delete;
2355
+
2356
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __annotation_guard(basic_string& __str) : __str_(__str) {
2357
+ __str_.__annotate_delete();
2358
+ }
2359
+
2360
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 ~__annotation_guard() { __str_.__annotate_new(__str_.size()); }
2361
+
2362
+ basic_string& __str_;
2363
+ };
2364
+
2365
+ template <size_type __a>
2366
+ static _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type __align_it(size_type __s) _NOEXCEPT {
2367
+ return (__s + (__a - 1)) & ~(__a - 1);
2368
+ }
2369
+ enum { __alignment = 8 };
2370
+
2371
+ // This makes sure that we're using a capacity with some extra alignment, since allocators almost always over-align
2372
+ // the allocations anyways, improving memory usage. More importantly, this ensures that the lowest bit is never set
2373
+ // if __endian_factor == 2, allowing us to store whether we're in the long string inside the lowest bit.
2374
+ _LIBCPP_HIDE_FROM_ABI static _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
2375
+ __align_allocation_size(size_type __size) _NOEXCEPT {
2376
+ _LIBCPP_ASSERT_INTERNAL(
2377
+ !__fits_in_sso(__size), "Trying to align allocation of a size which would fit into the SSO");
2378
+ const size_type __boundary = sizeof(value_type) < __alignment ? __alignment / sizeof(value_type) : __endian_factor;
2379
+ size_type __guess = __align_it<__boundary>(__size + 1);
2380
+ if (__guess == __min_cap + 1)
2381
+ __guess += __endian_factor;
2382
+
2383
+ _LIBCPP_ASSERT_INTERNAL(__guess >= __size, "aligned allocation size is below the requested size");
2384
+ return __guess;
2385
+ }
2386
+
2387
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type
2388
+ __get_amortized_growth_capacity(size_type __required_capacity) {
2389
+ size_type __max_size = max_size();
2390
+ if (__required_capacity > __max_size)
2391
+ __throw_length_error();
2392
+ size_type __current_cap = capacity();
2393
+ _LIBCPP_ASSERT_INTERNAL(
2394
+ __current_cap < __required_capacity, "Trying to grow string even though there is enough capacity already?");
2395
+ if (__current_cap > __max_size / 2 - __alignment)
2396
+ return __max_size;
2397
+ return std::max(__required_capacity, 2 * __current_cap);
2398
+ }
2399
+
2400
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void __init(const value_type* __s, size_type __sz);
2401
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void __init(size_type __n, value_type __c);
2402
+
2403
+ // Slow path for the (inlined) copy constructor for 'long' strings.
2404
+ // Always externally instantiated and not inlined.
2405
+ // Requires that __s is zero terminated.
2406
+ // The main reason for this function to exist is because for unstable, we
2407
+ // want to allow inlining of the copy constructor. However, we don't want
2408
+ // to call the __init() functions as those are marked as inline which may
2409
+ // result in over-aggressive inlining by the compiler, where our aim is
2410
+ // to only inline the fast path code directly in the ctor.
2411
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE void __init_copy_ctor_external(const value_type* __s, size_type __sz);
2412
+
2413
+ template <class _InputIterator, __enable_if_t<__has_exactly_input_iterator_category<_InputIterator>::value, int> = 0>
2414
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void __init(_InputIterator __first, _InputIterator __last);
2415
+
2416
+ template <class _ForwardIterator, __enable_if_t<__has_forward_iterator_category<_ForwardIterator>::value, int> = 0>
2417
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void __init(_ForwardIterator __first, _ForwardIterator __last);
2418
+
2419
+ template <class _InputIterator, class _Sentinel>
2420
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2421
+ __init_with_sentinel(_InputIterator __first, _Sentinel __last);
2422
+ template <class _InputIterator, class _Sentinel>
2423
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2424
+ __init_with_size(_InputIterator __first, _Sentinel __last, size_type __sz);
2425
+
2426
+ _LIBCPP_CONSTEXPR_SINCE_CXX20
2427
+ # if _LIBCPP_ABI_VERSION >= 2 // We want to use the function in the dylib in ABIv1
2428
+ _LIBCPP_HIDE_FROM_ABI
2429
+ # endif
2430
+ _LIBCPP_DEPRECATED_("use __grow_by_without_replace") void __grow_by(
2431
+ size_type __old_cap,
2432
+ size_type __delta_cap,
2433
+ size_type __old_sz,
2434
+ size_type __n_copy,
2435
+ size_type __n_del,
2436
+ size_type __n_add = 0);
2437
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __grow_by_without_replace(
2438
+ size_type __old_cap,
2439
+ size_type __delta_cap,
2440
+ size_type __old_sz,
2441
+ size_type __n_copy,
2442
+ size_type __n_del,
2443
+ size_type __n_add = 0);
2444
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void __grow_by_and_replace(
2445
+ size_type __old_cap,
2446
+ size_type __delta_cap,
2447
+ size_type __old_sz,
2448
+ size_type __n_copy,
2449
+ size_type __n_del,
2450
+ size_type __n_add,
2451
+ const value_type* __p_new_stuff);
2452
+
2453
+ // __assign_no_alias is invoked for assignment operations where we
2454
+ // have proof that the input does not alias the current instance.
2455
+ // For example, operator=(basic_string) performs a 'self' check.
2456
+ template <bool __is_short>
2457
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE basic_string& __assign_no_alias(const value_type* __s, size_type __n);
2458
+
2459
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __erase_to_end(size_type __pos) {
2460
+ _LIBCPP_ASSERT_INTERNAL(__pos <= capacity(), "Trying to erase at position outside the strings capacity!");
2461
+ __null_terminate_at(std::__to_address(__get_pointer()), __pos);
2462
+ }
2463
+
2464
+ // __erase_external_with_move is invoked for erase() invocations where
2465
+ // `n ~= npos`, likely requiring memory moves on the string data.
2466
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE void
2467
+ __erase_external_with_move(size_type __pos, size_type __n) _NOEXCEPT;
2468
+
2469
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __copy_assign_alloc(const basic_string& __str) {
2470
+ __copy_assign_alloc(
2471
+ __str, integral_constant<bool, __alloc_traits::propagate_on_container_copy_assignment::value>());
2472
+ }
2473
+
2474
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __copy_assign_alloc(const basic_string& __str, true_type) {
2475
+ if (__alloc_ == __str.__alloc_)
2476
+ __alloc_ = __str.__alloc_;
2477
+ else {
2478
+ if (!__str.__is_long()) {
2479
+ __reset_internal_buffer();
2480
+ __alloc_ = __str.__alloc_;
2481
+ } else {
2482
+ __annotate_delete();
2483
+ auto __guard = std::__make_scope_guard(__annotate_new_size(*this));
2484
+ auto __alloc = __str.__alloc_;
2485
+ __reset_internal_buffer(__allocate_long_buffer(__alloc, __str.size()));
2486
+ __alloc_ = std::move(__alloc);
2487
+ }
2488
+ }
2489
+ }
2490
+
2491
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2492
+ __copy_assign_alloc(const basic_string&, false_type) _NOEXCEPT {}
2493
+
2494
+ # ifndef _LIBCPP_CXX03_LANG
2495
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2496
+ __move_assign(basic_string& __str, false_type) noexcept(__alloc_traits::is_always_equal::value);
2497
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS void
2498
+ __move_assign(basic_string& __str, true_type)
2499
+ # if _LIBCPP_STD_VER >= 17
2500
+ noexcept;
2501
+ # else
2502
+ noexcept(is_nothrow_move_assignable<allocator_type>::value);
2503
+ # endif
2504
+ # endif
2505
+
2506
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __move_assign_alloc(basic_string& __str)
2507
+ _NOEXCEPT_(!__alloc_traits::propagate_on_container_move_assignment::value ||
2508
+ is_nothrow_move_assignable<allocator_type>::value) {
2509
+ __move_assign_alloc(
2510
+ __str, integral_constant<bool, __alloc_traits::propagate_on_container_move_assignment::value>());
2511
+ }
2512
+
2513
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __move_assign_alloc(basic_string& __c, true_type)
2514
+ _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value) {
2515
+ __alloc_ = std::move(__c.__alloc_);
2516
+ }
2517
+
2518
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void __move_assign_alloc(basic_string&, false_type) _NOEXCEPT {}
2519
+
2520
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE basic_string& __assign_external(const value_type* __s);
2521
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE basic_string& __assign_external(const value_type* __s, size_type __n);
2522
+
2523
+ // Assigns the value in __s, guaranteed to be __n < __min_cap in length.
2524
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string& __assign_short(const value_type* __s, size_type __n) {
2525
+ size_type __old_size = size();
2526
+ if (__n > __old_size)
2527
+ __annotate_increase(__n - __old_size);
2528
+ pointer __p;
2529
+ if (__is_long()) {
2530
+ __set_long_size(__n);
2531
+ __p = __get_long_pointer();
2532
+ } else {
2533
+ __set_short_size(__n);
2534
+ __p = __get_short_pointer();
2535
+ }
2536
+ traits_type::move(std::__to_address(__p), __s, __n);
2537
+ traits_type::assign(__p[__n], value_type());
2538
+ if (__old_size > __n)
2539
+ __annotate_shrink(__old_size);
2540
+ return *this;
2541
+ }
2542
+
2543
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string&
2544
+ __null_terminate_at(value_type* __p, size_type __newsz) {
2545
+ size_type __old_size = size();
2546
+ if (__newsz > __old_size)
2547
+ __annotate_increase(__newsz - __old_size);
2548
+ __set_size(__newsz);
2549
+ traits_type::assign(__p[__newsz], value_type());
2550
+ if (__old_size > __newsz)
2551
+ __annotate_shrink(__old_size);
2552
+ return *this;
2553
+ }
2554
+
2555
+ template <class _Tp>
2556
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool __addr_in_range(const _Tp& __v) const {
2557
+ return std::__is_pointer_in_range(data(), data() + size() + 1, std::addressof(__v));
2558
+ }
2559
+
2560
+ [[__noreturn__]] _LIBCPP_HIDE_FROM_ABI static void __throw_length_error() {
2561
+ std::__throw_length_error("basic_string");
2562
+ }
2563
+
2564
+ [[__noreturn__]] _LIBCPP_HIDE_FROM_ABI static void __throw_out_of_range() {
2565
+ std::__throw_out_of_range("basic_string");
2566
+ }
2567
+
2568
+ friend _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string
2569
+ __concatenate_strings<>(const _Allocator&, __type_identity_t<__self_view>, __type_identity_t<__self_view>);
2570
+
2571
+ template <class _CharT2, class _Traits2, class _Allocator2>
2572
+ friend inline _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI bool
2573
+ operator==(const basic_string<_CharT2, _Traits2, _Allocator2>&, const _CharT2*) _NOEXCEPT;
2574
+
2575
+ // These functions aren't used anymore but are part of out ABI, so we need to provide them in the dylib for backwards
2576
+ // compatibility
2577
+ # ifdef _LIBCPP_BUILDING_LIBRARY
2578
+ void __init(const value_type* __s, size_type __sz, size_type __reserve);
2579
+ # endif
2580
+ };
2581
+
2582
+ // These declarations must appear before any functions are implicitly used
2583
+ // so that they have the correct visibility specifier.
2584
+ # define _LIBCPP_DECLARE(...) extern template _LIBCPP_EXPORTED_FROM_ABI __VA_ARGS__;
2585
+ # ifdef _LIBCPP_ABI_STRING_OPTIMIZED_EXTERNAL_INSTANTIATION
2586
+ _LIBCPP_STRING_UNSTABLE_EXTERN_TEMPLATE_LIST(_LIBCPP_DECLARE, char)
2587
+ # if _LIBCPP_HAS_WIDE_CHARACTERS
2588
+ _LIBCPP_STRING_UNSTABLE_EXTERN_TEMPLATE_LIST(_LIBCPP_DECLARE, wchar_t)
2589
+ # endif
2590
+ # else
2591
+ _LIBCPP_STRING_V1_EXTERN_TEMPLATE_LIST(_LIBCPP_DECLARE, char)
2592
+ # if _LIBCPP_HAS_WIDE_CHARACTERS
2593
+ _LIBCPP_STRING_V1_EXTERN_TEMPLATE_LIST(_LIBCPP_DECLARE, wchar_t)
2594
+ # endif
2595
+ # endif
2596
+ # undef _LIBCPP_DECLARE
2597
+
2598
+ # if _LIBCPP_STD_VER <= 17 || !__has_builtin(__builtin_lt_synthesizes_from_spaceship)
2599
+ template <class _CharT, class _Traits, class _Alloc>
2600
+ struct __default_three_way_comparator<basic_string<_CharT, _Traits, _Alloc>, basic_string<_CharT, _Traits, _Alloc> > {
2601
+ using __string_t _LIBCPP_NODEBUG = basic_string<_CharT, _Traits, _Alloc>;
2602
+
2603
+ _LIBCPP_HIDE_FROM_ABI static int operator()(const __string_t& __lhs, const __string_t& __rhs) {
2604
+ auto __min_len = std::min(__lhs.size(), __rhs.size());
2605
+ auto __ret = _Traits::compare(__lhs.data(), __rhs.data(), __min_len);
2606
+ if (__ret == 0)
2607
+ return __lhs.size() == __rhs.size() ? 0 : __lhs.size() < __rhs.size() ? -1 : 1;
2608
+ return __ret;
2609
+ }
2610
+ };
2611
+ # endif
2612
+
2613
+ template <class _Comparator, class _CharT, class _Traits, class _Alloc>
2614
+ inline const bool __is_transparently_comparable_v<_Comparator,
2615
+ basic_string<_CharT, _Traits, _Alloc>,
2616
+ const _CharT*,
2617
+ __enable_if_t<__is_generic_transparent_comparator_v<_Comparator> > > =
2618
+ true;
2619
+
2620
+ template <class _Comparator, class _CharT, class _Traits, class _Alloc, size_t _Np>
2621
+ inline const bool __is_transparently_comparable_v<_Comparator,
2622
+ basic_string<_CharT, _Traits, _Alloc>,
2623
+ _CharT[_Np],
2624
+ __enable_if_t<__is_generic_transparent_comparator_v<_Comparator> > > =
2625
+ true;
2626
+
2627
+ # if _LIBCPP_STD_VER >= 17
2628
+ template <class _InputIterator,
2629
+ class _CharT = __iterator_value_type<_InputIterator>,
2630
+ class _Allocator = allocator<_CharT>,
2631
+ class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
2632
+ class = enable_if_t<__is_allocator_v<_Allocator>>>
2633
+ basic_string(_InputIterator, _InputIterator, _Allocator = _Allocator())
2634
+ -> basic_string<_CharT, char_traits<_CharT>, _Allocator>;
2635
+
2636
+ template <class _CharT,
2637
+ class _Traits,
2638
+ class _Allocator = allocator<_CharT>,
2639
+ class = enable_if_t<__is_allocator_v<_Allocator>>>
2640
+ explicit basic_string(basic_string_view<_CharT, _Traits>, const _Allocator& = _Allocator())
2641
+ -> basic_string<_CharT, _Traits, _Allocator>;
2642
+
2643
+ template <class _CharT,
2644
+ class _Traits,
2645
+ class _Allocator = allocator<_CharT>,
2646
+ class = enable_if_t<__is_allocator_v<_Allocator>>,
2647
+ class _Sz = typename allocator_traits<_Allocator>::size_type >
2648
+ basic_string(basic_string_view<_CharT, _Traits>, _Sz, _Sz, const _Allocator& = _Allocator())
2649
+ -> basic_string<_CharT, _Traits, _Allocator>;
2650
+ # endif
2651
+
2652
+ # if _LIBCPP_STD_VER >= 23
2653
+ template <ranges::input_range _Range,
2654
+ class _Allocator = allocator<ranges::range_value_t<_Range>>,
2655
+ class = enable_if_t<__is_allocator_v<_Allocator>>>
2656
+ basic_string(from_range_t, _Range&&, _Allocator = _Allocator())
2657
+ -> basic_string<ranges::range_value_t<_Range>, char_traits<ranges::range_value_t<_Range>>, _Allocator>;
2658
+ # endif
2659
+
2660
+ template <class _CharT, class _Traits, class _Allocator>
2661
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2662
+ basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz) {
2663
+ pointer __p = __init_internal_buffer(__sz);
2664
+ traits_type::copy(std::__to_address(__p), __s, __sz);
2665
+ traits_type::assign(__p[__sz], value_type());
2666
+ }
2667
+
2668
+ template <class _CharT, class _Traits, class _Allocator>
2669
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE void
2670
+ basic_string<_CharT, _Traits, _Allocator>::__init_copy_ctor_external(const value_type* __s, size_type __sz) {
2671
+ pointer __p = __init_internal_buffer(__sz);
2672
+ traits_type::copy(std::__to_address(__p), __s, __sz + 1);
2673
+ }
2674
+
2675
+ template <class _CharT, class _Traits, class _Allocator>
2676
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c) {
2677
+ pointer __p = __init_internal_buffer(__n);
2678
+ traits_type::assign(std::__to_address(__p), __n, __c);
2679
+ traits_type::assign(__p[__n], value_type());
2680
+ }
2681
+
2682
+ template <class _CharT, class _Traits, class _Allocator>
2683
+ template <class _InputIterator, __enable_if_t<__has_exactly_input_iterator_category<_InputIterator>::value, int> >
2684
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2685
+ basic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _InputIterator __last) {
2686
+ __init_with_sentinel(std::move(__first), std::move(__last));
2687
+ }
2688
+
2689
+ template <class _CharT, class _Traits, class _Allocator>
2690
+ template <class _InputIterator, class _Sentinel>
2691
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2692
+ basic_string<_CharT, _Traits, _Allocator>::__init_with_sentinel(_InputIterator __first, _Sentinel __last) {
2693
+ __rep_ = __rep();
2694
+ __annotate_new(0);
2695
+
2696
+ auto __guard = std::__make_exception_guard([this] { __reset_internal_buffer(); });
2697
+ for (; __first != __last; ++__first)
2698
+ push_back(*__first);
2699
+ __guard.__complete();
2700
+ }
2701
+
2702
+ template <class _CharT, class _Traits, class _Allocator>
2703
+ template <class _ForwardIterator, __enable_if_t<__has_forward_iterator_category<_ForwardIterator>::value, int> >
2704
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2705
+ basic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _ForwardIterator __last) {
2706
+ size_type __sz = static_cast<size_type>(std::distance(__first, __last));
2707
+ __init_with_size(__first, __last, __sz);
2708
+ }
2709
+
2710
+ template <class _CharT, class _Traits, class _Allocator>
2711
+ template <class _InputIterator, class _Sentinel>
2712
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2713
+ basic_string<_CharT, _Traits, _Allocator>::__init_with_size(_InputIterator __first, _Sentinel __last, size_type __sz) {
2714
+ pointer __p = __init_internal_buffer(__sz);
2715
+
2716
+ auto __guard = std::__make_exception_guard([this] { __reset_internal_buffer(); });
2717
+ auto __end = __copy_non_overlapping_range(std::move(__first), std::move(__last), std::__to_address(__p));
2718
+ traits_type::assign(*__end, value_type());
2719
+ __guard.__complete();
2720
+ }
2721
+
2722
+ template <class _CharT, class _Traits, class _Allocator>
2723
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::__grow_by_and_replace(
2724
+ size_type __old_cap,
2725
+ size_type __delta_cap,
2726
+ size_type __old_sz,
2727
+ size_type __n_copy,
2728
+ size_type __n_del,
2729
+ size_type __n_add,
2730
+ const value_type* __p_new_stuff) {
2731
+ __long __buffer = __allocate_long_buffer(__alloc_, __get_amortized_growth_capacity(__old_cap + __delta_cap));
2732
+ pointer __old_p = __get_pointer();
2733
+ __annotate_delete();
2734
+ auto __guard = std::__make_scope_guard(__annotate_new_size(*this));
2735
+ if (__n_copy != 0)
2736
+ traits_type::copy(std::__to_address(__buffer.__data_), std::__to_address(__old_p), __n_copy);
2737
+ if (__n_add != 0)
2738
+ traits_type::copy(std::__to_address(__buffer.__data_) + __n_copy, __p_new_stuff, __n_add);
2739
+ size_type __sec_cp_sz = __old_sz - __n_del - __n_copy;
2740
+ if (__sec_cp_sz != 0)
2741
+ traits_type::copy(std::__to_address(__buffer.__data_) + __n_copy + __n_add,
2742
+ std::__to_address(__old_p) + __n_copy + __n_del,
2743
+ __sec_cp_sz);
2744
+ __buffer.__size_ = __n_copy + __n_add + __sec_cp_sz;
2745
+ traits_type::assign(__buffer.__data_[__buffer.__size_], value_type());
2746
+ __reset_internal_buffer(__buffer);
2747
+ }
2748
+
2749
+ // __grow_by is deprecated because it does not set the size. It may not update the size when the size is changed, and it
2750
+ // may also not set the size at all when the string was short initially. This leads to unpredictable size value. It is
2751
+ // not removed or changed to avoid breaking the ABI.
2752
+ template <class _CharT, class _Traits, class _Allocator>
2753
+ void _LIBCPP_CONSTEXPR_SINCE_CXX20
2754
+ # if _LIBCPP_ABI_VERSION >= 2 // We want to use the function in the dylib in ABIv1
2755
+ _LIBCPP_HIDE_FROM_ABI
2756
+ # endif
2757
+ _LIBCPP_DEPRECATED_("use __grow_by_without_replace") basic_string<_CharT, _Traits, _Allocator>::__grow_by(
2758
+ size_type __old_cap,
2759
+ size_type __delta_cap,
2760
+ size_type __old_sz,
2761
+ size_type __n_copy,
2762
+ size_type __n_del,
2763
+ size_type __n_add) {
2764
+ __long __buffer = __allocate_long_buffer(__alloc_, __get_amortized_growth_capacity(__old_cap + __delta_cap));
2765
+ pointer __old_p = __get_pointer();
2766
+ if (__n_copy != 0)
2767
+ traits_type::copy(std::__to_address(__buffer.__data_), std::__to_address(__old_p), __n_copy);
2768
+ size_type __sec_cp_sz = __old_sz - __n_del - __n_copy;
2769
+ if (__sec_cp_sz != 0)
2770
+ traits_type::copy(std::__to_address(__buffer.__data_) + __n_copy + __n_add,
2771
+ std::__to_address(__old_p) + __n_copy + __n_del,
2772
+ __sec_cp_sz);
2773
+
2774
+ // This is -1 to make sure the caller sets the size properly, since old versions of this function didn't set the size
2775
+ // at all.
2776
+ __buffer.__size_ = -1;
2777
+ __reset_internal_buffer(__buffer);
2778
+ }
2779
+
2780
+ template <class _CharT, class _Traits, class _Allocator>
2781
+ void _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI
2782
+ basic_string<_CharT, _Traits, _Allocator>::__grow_by_without_replace(
2783
+ size_type __old_cap,
2784
+ size_type __delta_cap,
2785
+ size_type __old_sz,
2786
+ size_type __n_copy,
2787
+ size_type __n_del,
2788
+ size_type __n_add) {
2789
+ __annotate_delete();
2790
+ auto __guard = std::__make_scope_guard(__annotate_new_size(*this));
2791
+ _LIBCPP_SUPPRESS_DEPRECATED_PUSH
2792
+ __grow_by(__old_cap, __delta_cap, __old_sz, __n_copy, __n_del, __n_add);
2793
+ _LIBCPP_SUPPRESS_DEPRECATED_POP
2794
+ // Due to the ABI of __grow_by we have to set the size after calling it.
2795
+ __set_long_size(__old_sz - __n_del + __n_add);
2796
+ }
2797
+
2798
+ // assign
2799
+
2800
+ template <class _CharT, class _Traits, class _Allocator>
2801
+ template <bool __is_short>
2802
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE basic_string<_CharT, _Traits, _Allocator>&
2803
+ basic_string<_CharT, _Traits, _Allocator>::__assign_no_alias(const value_type* __s, size_type __n) {
2804
+ const auto __cap = __is_short ? static_cast<size_type>(__min_cap) : __get_long_cap();
2805
+ const auto __size = __is_short ? __get_short_size() : __get_long_size();
2806
+ if (__n >= __cap) {
2807
+ __grow_by_and_replace(__cap - 1, __n - __cap + 1, __size, 0, __size, __n, __s);
2808
+ return *this;
2809
+ }
2810
+
2811
+ __annotate_delete();
2812
+ auto __guard = std::__make_scope_guard(__annotate_new_size(*this));
2813
+ pointer __p;
2814
+ if (__is_short) {
2815
+ __p = __get_short_pointer();
2816
+ __set_short_size(__n);
2817
+ } else {
2818
+ __p = __get_long_pointer();
2819
+ __set_long_size(__n);
2820
+ }
2821
+ traits_type::copy(std::__to_address(__p), __s, __n);
2822
+ traits_type::assign(__p[__n], value_type());
2823
+ return *this;
2824
+ }
2825
+
2826
+ template <class _CharT, class _Traits, class _Allocator>
2827
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE basic_string<_CharT, _Traits, _Allocator>&
2828
+ basic_string<_CharT, _Traits, _Allocator>::__assign_external(const value_type* __s, size_type __n) {
2829
+ const auto __cap = capacity();
2830
+ const auto __size = size();
2831
+ if (__cap >= __n) {
2832
+ if (__n > __size)
2833
+ __annotate_increase(__n - __size);
2834
+ value_type* __p = std::__to_address(__get_pointer());
2835
+ traits_type::move(__p, __s, __n);
2836
+ return __null_terminate_at(__p, __n);
2837
+ } else {
2838
+ __grow_by_and_replace(__cap, __n - __cap, __size, 0, __size, __n, __s);
2839
+ return *this;
2840
+ }
2841
+ }
2842
+
2843
+ template <class _CharT, class _Traits, class _Allocator>
2844
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
2845
+ basic_string<_CharT, _Traits, _Allocator>::assign(const value_type* __s, size_type __n) {
2846
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::assign received nullptr");
2847
+ return (__builtin_constant_p(__n) && __fits_in_sso(__n)) ? __assign_short(__s, __n) : __assign_external(__s, __n);
2848
+ }
2849
+
2850
+ template <class _CharT, class _Traits, class _Allocator>
2851
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
2852
+ basic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c) {
2853
+ size_type __cap = capacity();
2854
+ size_type __old_size = size();
2855
+ if (__cap < __n) {
2856
+ __grow_by_without_replace(__cap, __n - __cap, __old_size, 0, __old_size);
2857
+ __annotate_increase(__n);
2858
+ } else if (__n > __old_size)
2859
+ __annotate_increase(__n - __old_size);
2860
+ value_type* __p = std::__to_address(__get_pointer());
2861
+ traits_type::assign(__p, __n, __c);
2862
+ return __null_terminate_at(__p, __n);
2863
+ }
2864
+
2865
+ template <class _CharT, class _Traits, class _Allocator>
2866
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
2867
+ basic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c) {
2868
+ size_type __old_size = size();
2869
+ if (__old_size == 0)
2870
+ __annotate_increase(1);
2871
+ pointer __p;
2872
+ if (__is_long()) {
2873
+ __p = __get_long_pointer();
2874
+ __set_long_size(1);
2875
+ } else {
2876
+ __p = __get_short_pointer();
2877
+ __set_short_size(1);
2878
+ }
2879
+ traits_type::assign(*__p, __c);
2880
+ traits_type::assign(*++__p, value_type());
2881
+ if (__old_size > 1)
2882
+ __annotate_shrink(__old_size);
2883
+ return *this;
2884
+ }
2885
+
2886
+ template <class _CharT, class _Traits, class _Allocator>
2887
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS basic_string<_CharT, _Traits, _Allocator>&
2888
+ basic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str) {
2889
+ if (this == std::addressof(__str))
2890
+ return *this;
2891
+
2892
+ __copy_assign_alloc(__str);
2893
+
2894
+ if (__is_long())
2895
+ return __assign_no_alias<false>(__str.data(), __str.size());
2896
+
2897
+ if (__str.__is_long())
2898
+ return __assign_no_alias<true>(__str.data(), __str.size());
2899
+
2900
+ __annotate_delete();
2901
+ auto __guard = std::__make_scope_guard(__annotate_new_size(*this));
2902
+ __rep_ = __str.__rep_;
2903
+
2904
+ return *this;
2905
+ }
2906
+
2907
+ # ifndef _LIBCPP_CXX03_LANG
2908
+
2909
+ template <class _CharT, class _Traits, class _Allocator>
2910
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::__move_assign(
2911
+ basic_string& __str, false_type) noexcept(__alloc_traits::is_always_equal::value) {
2912
+ if (__alloc_ != __str.__alloc_)
2913
+ assign(__str);
2914
+ else
2915
+ __move_assign(__str, true_type());
2916
+ }
2917
+
2918
+ template <class _CharT, class _Traits, class _Allocator>
2919
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS void
2920
+ basic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, true_type)
2921
+ # if _LIBCPP_STD_VER >= 17
2922
+ noexcept
2923
+ # else
2924
+ noexcept(is_nothrow_move_assignable<allocator_type>::value)
2925
+ # endif
2926
+ {
2927
+ __annotate_delete();
2928
+ if (__is_long()) {
2929
+ __reset_internal_buffer();
2930
+ # if _LIBCPP_STD_VER <= 14
2931
+ if (!is_nothrow_move_assignable<allocator_type>::value) {
2932
+ __set_short_size(0);
2933
+ traits_type::assign(__get_short_pointer()[0], value_type());
2934
+ __annotate_new(0);
2935
+ }
2936
+ # endif
2937
+ }
2938
+ size_type __str_old_size = __str.size();
2939
+ bool __str_was_short = !__str.__is_long();
2940
+
2941
+ __move_assign_alloc(__str);
2942
+ __rep_ = __str.__rep_;
2943
+ __str.__set_short_size(0);
2944
+ traits_type::assign(__str.__get_short_pointer()[0], value_type());
2945
+
2946
+ if (__str_was_short && this != std::addressof(__str))
2947
+ __str.__annotate_shrink(__str_old_size);
2948
+ else
2949
+ // ASan annotations: was long, so object memory is unpoisoned as new.
2950
+ // Or is same as *this, and __annotate_delete() was called.
2951
+ __str.__annotate_new(0);
2952
+
2953
+ // ASan annotations: Guard against `std::string s; s = std::move(s);`
2954
+ // You can find more here: https://en.cppreference.com/w/cpp/utility/move
2955
+ // Quote: "Unless otherwise specified, all standard library objects that have been moved
2956
+ // from are placed in a "valid but unspecified state", meaning the object's class
2957
+ // invariants hold (so functions without preconditions, such as the assignment operator,
2958
+ // can be safely used on the object after it was moved from):"
2959
+ // Quote: "v = std::move(v); // the value of v is unspecified"
2960
+ if (!__is_long() && std::addressof(__str) != this)
2961
+ // If it is long string, delete was never called on original __str's buffer.
2962
+ __annotate_new(__get_short_size());
2963
+ }
2964
+
2965
+ # endif
2966
+
2967
+ template <class _CharT, class _Traits, class _Allocator>
2968
+ template <class _InputIterator, class _Sentinel>
2969
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
2970
+ basic_string<_CharT, _Traits, _Allocator>::__assign_with_sentinel(_InputIterator __first, _Sentinel __last) {
2971
+ const basic_string __temp(__init_with_sentinel_tag(), std::move(__first), std::move(__last), __alloc_);
2972
+ assign(__temp.data(), __temp.size());
2973
+ }
2974
+
2975
+ template <class _CharT, class _Traits, class _Allocator>
2976
+ template <class _Iterator, class _Sentinel>
2977
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
2978
+ basic_string<_CharT, _Traits, _Allocator>::__assign_trivial(_Iterator __first, _Sentinel __last, size_type __n) {
2979
+ _LIBCPP_ASSERT_INTERNAL(
2980
+ __string_is_trivial_iterator_v<_Iterator>, "The iterator type given to `__assign_trivial` must be trivial");
2981
+
2982
+ size_type __old_size = size();
2983
+ size_type __cap = capacity();
2984
+ if (__cap < __n) {
2985
+ // Unlike `append` functions, if the input range points into the string itself, there is no case that the input
2986
+ // range could get invalidated by reallocation:
2987
+ // 1. If the input range is a subset of the string itself, its size cannot exceed the capacity of the string,
2988
+ // thus no reallocation would happen.
2989
+ // 2. In the exotic case where the input range is the byte representation of the string itself, the string
2990
+ // object itself stays valid even if reallocation happens.
2991
+ size_type __sz = size();
2992
+ __grow_by_without_replace(__cap, __n - __cap, __sz, 0, __sz);
2993
+ __annotate_increase(__n);
2994
+ } else if (__n > __old_size)
2995
+ __annotate_increase(__n - __old_size);
2996
+ pointer __p = __get_pointer();
2997
+ for (; __first != __last; ++__p, (void)++__first)
2998
+ traits_type::assign(*__p, *__first);
2999
+ traits_type::assign(*__p, value_type());
3000
+ __set_size(__n);
3001
+ if (__n < __old_size)
3002
+ __annotate_shrink(__old_size);
3003
+ }
3004
+
3005
+ template <class _CharT, class _Traits, class _Allocator>
3006
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3007
+ basic_string<_CharT, _Traits, _Allocator>::assign(const basic_string& __str, size_type __pos, size_type __n) {
3008
+ size_type __sz = __str.size();
3009
+ if (__pos > __sz)
3010
+ this->__throw_out_of_range();
3011
+ return assign(__str.data() + __pos, std::min(__n, __sz - __pos));
3012
+ }
3013
+
3014
+ template <class _CharT, class _Traits, class _Allocator>
3015
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE basic_string<_CharT, _Traits, _Allocator>&
3016
+ basic_string<_CharT, _Traits, _Allocator>::__assign_external(const value_type* __s) {
3017
+ return __assign_external(__s, traits_type::length(__s));
3018
+ }
3019
+
3020
+ template <class _CharT, class _Traits, class _Allocator>
3021
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3022
+ basic_string<_CharT, _Traits, _Allocator>::assign(const value_type* __s) {
3023
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::assign received nullptr");
3024
+ if (auto __len = traits_type::length(__s); __builtin_constant_p(__len) && __fits_in_sso(__len))
3025
+ return __assign_short(__s, __len);
3026
+ return __assign_external(__s);
3027
+ }
3028
+ // append
3029
+
3030
+ template <class _CharT, class _Traits, class _Allocator>
3031
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3032
+ basic_string<_CharT, _Traits, _Allocator>::append(const value_type* __s, size_type __n) {
3033
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::append received nullptr");
3034
+ size_type __cap = capacity();
3035
+ size_type __sz = size();
3036
+ if (__cap - __sz < __n) {
3037
+ __grow_by_and_replace(__cap, __sz + __n - __cap, __sz, __sz, 0, __n, __s);
3038
+ return *this;
3039
+ }
3040
+
3041
+ if (__n == 0)
3042
+ return *this;
3043
+
3044
+ __annotate_increase(__n);
3045
+ value_type* __p = std::__to_address(__get_pointer());
3046
+ traits_type::copy(__p + __sz, __s, __n);
3047
+ __sz += __n;
3048
+ __set_size(__sz);
3049
+ traits_type::assign(__p[__sz], value_type());
3050
+ return *this;
3051
+ }
3052
+
3053
+ template <class _CharT, class _Traits, class _Allocator>
3054
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3055
+ basic_string<_CharT, _Traits, _Allocator>::append(size_type __n, value_type __c) {
3056
+ if (__n == 0)
3057
+ return *this;
3058
+
3059
+ size_type __cap = capacity();
3060
+ size_type __sz = size();
3061
+ if (__cap - __sz < __n)
3062
+ __grow_by_without_replace(__cap, __sz + __n - __cap, __sz, __sz, 0);
3063
+ __annotate_increase(__n);
3064
+ pointer __p = __get_pointer();
3065
+ traits_type::assign(std::__to_address(__p) + __sz, __n, __c);
3066
+ __sz += __n;
3067
+ __set_size(__sz);
3068
+ traits_type::assign(__p[__sz], value_type());
3069
+ return *this;
3070
+ }
3071
+
3072
+ template <class _CharT, class _Traits, class _Allocator>
3073
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::push_back(value_type __c) {
3074
+ bool __is_short = !__is_long();
3075
+ size_type __cap;
3076
+ size_type __sz;
3077
+ if (__is_short) {
3078
+ __cap = __min_cap - 1;
3079
+ __sz = __get_short_size();
3080
+ } else {
3081
+ __cap = __get_long_cap() - 1;
3082
+ __sz = __get_long_size();
3083
+ }
3084
+ if (__sz == __cap) {
3085
+ __grow_by_without_replace(__cap, 1, __sz, __sz, 0);
3086
+ __is_short = false; // the string is always long after __grow_by
3087
+ }
3088
+ __annotate_increase(1);
3089
+ pointer __p;
3090
+ if (__is_short) {
3091
+ __p = __get_short_pointer() + __sz;
3092
+ __set_short_size(__sz + 1);
3093
+ } else {
3094
+ __p = __get_long_pointer() + __sz;
3095
+ __set_long_size(__sz + 1);
3096
+ }
3097
+ traits_type::assign(*__p, __c);
3098
+ traits_type::assign(*++__p, value_type());
3099
+ }
3100
+
3101
+ template <class _CharT, class _Traits, class _Allocator>
3102
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3103
+ basic_string<_CharT, _Traits, _Allocator>::append(const basic_string& __str, size_type __pos, size_type __n) {
3104
+ size_type __sz = __str.size();
3105
+ if (__pos > __sz)
3106
+ this->__throw_out_of_range();
3107
+ return append(__str.data() + __pos, std::min(__n, __sz - __pos));
3108
+ }
3109
+
3110
+ template <class _CharT, class _Traits, class _Allocator>
3111
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3112
+ basic_string<_CharT, _Traits, _Allocator>::append(const value_type* __s) {
3113
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::append received nullptr");
3114
+ return append(__s, traits_type::length(__s));
3115
+ }
3116
+
3117
+ // insert
3118
+
3119
+ template <class _CharT, class _Traits, class _Allocator>
3120
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3121
+ basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s, size_type __n) {
3122
+ _LIBCPP_ASSERT_NON_NULL(__n == 0 || __s != nullptr, "string::insert received nullptr");
3123
+ size_type __sz = size();
3124
+ if (__pos > __sz)
3125
+ this->__throw_out_of_range();
3126
+ size_type __cap = capacity();
3127
+
3128
+ if (__cap - __sz < __n) {
3129
+ __grow_by_and_replace(__cap, __sz + __n - __cap, __sz, __pos, 0, __n, __s);
3130
+ return *this;
3131
+ }
3132
+
3133
+ if (__n == 0)
3134
+ return *this;
3135
+
3136
+ __annotate_increase(__n);
3137
+ value_type* __p = std::__to_address(__get_pointer());
3138
+ size_type __n_move = __sz - __pos;
3139
+ if (__n_move != 0) {
3140
+ if (std::__is_pointer_in_range(__p + __pos, __p + __sz, __s))
3141
+ __s += __n;
3142
+ traits_type::move(__p + __pos + __n, __p + __pos, __n_move);
3143
+ }
3144
+ traits_type::move(__p + __pos, __s, __n);
3145
+ __sz += __n;
3146
+ __set_size(__sz);
3147
+ traits_type::assign(__p[__sz], value_type());
3148
+ return *this;
3149
+ }
3150
+
3151
+ template <class _CharT, class _Traits, class _Allocator>
3152
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3153
+ basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, size_type __n, value_type __c) {
3154
+ size_type __sz = size();
3155
+ if (__pos > __sz)
3156
+ this->__throw_out_of_range();
3157
+
3158
+ if (__n == 0)
3159
+ return *this;
3160
+
3161
+ size_type __cap = capacity();
3162
+ value_type* __p;
3163
+ if (__cap - __sz >= __n) {
3164
+ __annotate_increase(__n);
3165
+ __p = std::__to_address(__get_pointer());
3166
+ size_type __n_move = __sz - __pos;
3167
+ if (__n_move != 0)
3168
+ traits_type::move(__p + __pos + __n, __p + __pos, __n_move);
3169
+ } else {
3170
+ __grow_by_without_replace(__cap, __sz + __n - __cap, __sz, __pos, 0, __n);
3171
+ __p = std::__to_address(__get_long_pointer());
3172
+ }
3173
+ traits_type::assign(__p + __pos, __n, __c);
3174
+ __sz += __n;
3175
+ __set_size(__sz);
3176
+ traits_type::assign(__p[__sz], value_type());
3177
+ return *this;
3178
+ }
3179
+
3180
+ template <class _CharT, class _Traits, class _Allocator>
3181
+ template <class _Iterator, class _Sentinel>
3182
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 typename basic_string<_CharT, _Traits, _Allocator>::iterator
3183
+ basic_string<_CharT, _Traits, _Allocator>::__insert_with_size(
3184
+ const_iterator __pos, _Iterator __first, _Sentinel __last, size_type __n) {
3185
+ size_type __ip = static_cast<size_type>(__pos - begin());
3186
+ if (__n == 0)
3187
+ return begin() + __ip;
3188
+
3189
+ if (__string_is_trivial_iterator_v<_Iterator> && !__addr_in_range(*__first)) {
3190
+ return __insert_from_safe_copy(__n, __ip, std::move(__first), std::move(__last));
3191
+ } else {
3192
+ const basic_string __temp(__init_with_sentinel_tag(), std::move(__first), std::move(__last), __alloc_);
3193
+ return __insert_from_safe_copy(__n, __ip, __temp.begin(), __temp.end());
3194
+ }
3195
+ }
3196
+
3197
+ template <class _CharT, class _Traits, class _Allocator>
3198
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3199
+ basic_string<_CharT, _Traits, _Allocator>::insert(
3200
+ size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n) {
3201
+ size_type __str_sz = __str.size();
3202
+ if (__pos2 > __str_sz)
3203
+ this->__throw_out_of_range();
3204
+ return insert(__pos1, __str.data() + __pos2, std::min(__n, __str_sz - __pos2));
3205
+ }
3206
+
3207
+ template <class _CharT, class _Traits, class _Allocator>
3208
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3209
+ basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s) {
3210
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::insert received nullptr");
3211
+ return insert(__pos, __s, traits_type::length(__s));
3212
+ }
3213
+
3214
+ template <class _CharT, class _Traits, class _Allocator>
3215
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 typename basic_string<_CharT, _Traits, _Allocator>::iterator
3216
+ basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, value_type __c) {
3217
+ size_type __ip = static_cast<size_type>(__pos - begin());
3218
+ size_type __sz = size();
3219
+ size_type __cap = capacity();
3220
+ value_type* __p;
3221
+ if (__cap == __sz) {
3222
+ __grow_by_without_replace(__cap, 1, __sz, __ip, 0, 1);
3223
+ __p = std::__to_address(__get_long_pointer());
3224
+ } else {
3225
+ __annotate_increase(1);
3226
+ __p = std::__to_address(__get_pointer());
3227
+ size_type __n_move = __sz - __ip;
3228
+ if (__n_move != 0)
3229
+ traits_type::move(__p + __ip + 1, __p + __ip, __n_move);
3230
+ }
3231
+ traits_type::assign(__p[__ip], __c);
3232
+ traits_type::assign(__p[++__sz], value_type());
3233
+ __set_size(__sz);
3234
+ return begin() + static_cast<difference_type>(__ip);
3235
+ }
3236
+
3237
+ // replace
3238
+
3239
+ template <class _CharT, class _Traits, class _Allocator>
3240
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3241
+ basic_string<_CharT, _Traits, _Allocator>::replace(
3242
+ size_type __pos, size_type __n1, const value_type* __s, size_type __n2)
3243
+ _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK {
3244
+ _LIBCPP_ASSERT_NON_NULL(__n2 == 0 || __s != nullptr, "string::replace received nullptr");
3245
+ size_type __sz = size();
3246
+ if (__pos > __sz)
3247
+ this->__throw_out_of_range();
3248
+ __n1 = std::min(__n1, __sz - __pos);
3249
+ size_type __cap = capacity();
3250
+ if (__cap - __sz + __n1 < __n2) {
3251
+ __grow_by_and_replace(__cap, __sz - __n1 + __n2 - __cap, __sz, __pos, __n1, __n2, __s);
3252
+ return *this;
3253
+ }
3254
+
3255
+ value_type* __p = std::__to_address(__get_pointer());
3256
+ if (__n1 != __n2) {
3257
+ if (__n2 > __n1)
3258
+ __annotate_increase(__n2 - __n1);
3259
+ size_type __n_move = __sz - __pos - __n1;
3260
+ if (__n_move != 0) {
3261
+ if (__n1 > __n2) {
3262
+ traits_type::move(__p + __pos, __s, __n2);
3263
+ traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move);
3264
+ return __null_terminate_at(__p, __sz + (__n2 - __n1));
3265
+ }
3266
+ if (std::__is_pointer_in_range(__p + __pos + 1, __p + __sz, __s)) {
3267
+ if (__p + __pos + __n1 <= __s) {
3268
+ __s += __n2 - __n1;
3269
+ } else { // __p + __pos < __s < __p + __pos + __n1
3270
+ traits_type::move(__p + __pos, __s, __n1);
3271
+ __pos += __n1;
3272
+ __s += __n2;
3273
+ __n2 -= __n1;
3274
+ __n1 = 0;
3275
+ }
3276
+ }
3277
+ traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move);
3278
+ }
3279
+ }
3280
+ traits_type::move(__p + __pos, __s, __n2);
3281
+ return __null_terminate_at(__p, __sz + (__n2 - __n1));
3282
+ }
3283
+
3284
+ template <class _CharT, class _Traits, class _Allocator>
3285
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3286
+ basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, size_type __n2, value_type __c) {
3287
+ size_type __sz = size();
3288
+ if (__pos > __sz)
3289
+ this->__throw_out_of_range();
3290
+ __n1 = std::min(__n1, __sz - __pos);
3291
+ size_type __cap = capacity();
3292
+ value_type* __p;
3293
+ if (__cap - __sz + __n1 >= __n2) {
3294
+ __p = std::__to_address(__get_pointer());
3295
+ if (__n1 != __n2) {
3296
+ if (__n2 > __n1)
3297
+ __annotate_increase(__n2 - __n1);
3298
+ size_type __n_move = __sz - __pos - __n1;
3299
+ if (__n_move != 0)
3300
+ traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move);
3301
+ }
3302
+ } else {
3303
+ __grow_by_without_replace(__cap, __sz - __n1 + __n2 - __cap, __sz, __pos, __n1, __n2);
3304
+ __p = std::__to_address(__get_long_pointer());
3305
+ }
3306
+ traits_type::assign(__p + __pos, __n2, __c);
3307
+ return __null_terminate_at(__p, __sz - (__n1 - __n2));
3308
+ }
3309
+
3310
+ template <class _CharT, class _Traits, class _Allocator>
3311
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3312
+ basic_string<_CharT, _Traits, _Allocator>::replace(
3313
+ size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) {
3314
+ size_type __str_sz = __str.size();
3315
+ if (__pos2 > __str_sz)
3316
+ this->__throw_out_of_range();
3317
+ return replace(__pos1, __n1, __str.data() + __pos2, std::min(__n2, __str_sz - __pos2));
3318
+ }
3319
+
3320
+ template <class _CharT, class _Traits, class _Allocator>
3321
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3322
+ basic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, const value_type* __s) {
3323
+ _LIBCPP_ASSERT_NON_NULL(__s != nullptr, "string::replace received nullptr");
3324
+ return replace(__pos, __n1, __s, traits_type::length(__s));
3325
+ }
3326
+
3327
+ // erase
3328
+
3329
+ // 'externally instantiated' erase() implementation, called when __n != npos.
3330
+ // Does not check __pos against size()
3331
+ template <class _CharT, class _Traits, class _Allocator>
3332
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_NOINLINE void
3333
+ basic_string<_CharT, _Traits, _Allocator>::__erase_external_with_move(size_type __pos, size_type __n) _NOEXCEPT {
3334
+ if (__n == 0)
3335
+ return;
3336
+
3337
+ size_type __sz = size();
3338
+ value_type* __p = std::__to_address(__get_pointer());
3339
+ __n = std::min(__n, __sz - __pos);
3340
+ size_type __n_move = __sz - __pos - __n;
3341
+ if (__n_move != 0)
3342
+ traits_type::move(__p + __pos, __p + __pos + __n, __n_move);
3343
+ __null_terminate_at(__p, __sz - __n);
3344
+ }
3345
+
3346
+ template <class _CharT, class _Traits, class _Allocator>
3347
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>&
3348
+ basic_string<_CharT, _Traits, _Allocator>::erase(size_type __pos, size_type __n) {
3349
+ if (__pos > size())
3350
+ this->__throw_out_of_range();
3351
+ if (__n == npos) {
3352
+ __erase_to_end(__pos);
3353
+ } else {
3354
+ __erase_external_with_move(__pos, __n);
3355
+ }
3356
+ return *this;
3357
+ }
3358
+
3359
+ template <class _CharT, class _Traits, class _Allocator>
3360
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 typename basic_string<_CharT, _Traits, _Allocator>::iterator
3361
+ basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __pos) {
3362
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(
3363
+ __pos != end(), "string::erase(iterator) called with a non-dereferenceable iterator");
3364
+ iterator __b = begin();
3365
+ size_type __r = static_cast<size_type>(__pos - __b);
3366
+ erase(__r, 1);
3367
+ return __b + static_cast<difference_type>(__r);
3368
+ }
3369
+
3370
+ template <class _CharT, class _Traits, class _Allocator>
3371
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 typename basic_string<_CharT, _Traits, _Allocator>::iterator
3372
+ basic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __first, const_iterator __last) {
3373
+ _LIBCPP_ASSERT_VALID_INPUT_RANGE(__first <= __last, "string::erase(first, last) called with invalid range");
3374
+ iterator __b = begin();
3375
+ size_type __r = static_cast<size_type>(__first - __b);
3376
+ erase(__r, static_cast<size_type>(__last - __first));
3377
+ return __b + static_cast<difference_type>(__r);
3378
+ }
3379
+
3380
+ template <class _CharT, class _Traits, class _Allocator>
3381
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::pop_back() {
3382
+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "string::pop_back(): string is already empty");
3383
+ __erase_to_end(size() - 1);
3384
+ }
3385
+
3386
+ template <class _CharT, class _Traits, class _Allocator>
3387
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::clear() _NOEXCEPT {
3388
+ size_type __old_size;
3389
+ if (__is_long()) {
3390
+ __old_size = __get_long_size();
3391
+ traits_type::assign(*__get_long_pointer(), value_type());
3392
+ __set_long_size(0);
3393
+ } else {
3394
+ __old_size = __get_short_size();
3395
+ traits_type::assign(*__get_short_pointer(), value_type());
3396
+ __set_short_size(0);
3397
+ }
3398
+ __annotate_shrink(__old_size);
3399
+ }
3400
+
3401
+ template <class _CharT, class _Traits, class _Allocator>
3402
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::resize(size_type __n, value_type __c) {
3403
+ size_type __sz = size();
3404
+ if (__n > __sz)
3405
+ append(__n - __sz, __c);
3406
+ else
3407
+ __erase_to_end(__n);
3408
+ }
3409
+
3410
+ template <class _CharT, class _Traits, class _Allocator>
3411
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::reserve(size_type __requested_capacity) {
3412
+ if (__requested_capacity > max_size())
3413
+ this->__throw_length_error();
3414
+
3415
+ // Make sure reserve(n) never shrinks. This is technically only required in C++20
3416
+ // and later (since P0966R1), however we provide consistent behavior in all Standard
3417
+ // modes because this function is instantiated in the shared library.
3418
+ if (__requested_capacity <= capacity())
3419
+ return;
3420
+
3421
+ __annotation_guard __g(*this);
3422
+ __long __buffer = __allocate_long_buffer(__alloc_, __requested_capacity);
3423
+ __buffer.__size_ = size();
3424
+ traits_type::copy(std::__to_address(__buffer.__data_), data(), __buffer.__size_ + 1);
3425
+ __reset_internal_buffer(__buffer);
3426
+ }
3427
+
3428
+ template <class _CharT, class _Traits, class _Allocator>
3429
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::shrink_to_fit() _NOEXCEPT {
3430
+ if (!__is_long())
3431
+ return;
3432
+
3433
+ const auto __ptr = __get_long_pointer();
3434
+ const auto __size = __get_long_size();
3435
+ const auto __cap = __get_long_cap();
3436
+
3437
+ // We're a long string and we're shrinking into the small buffer.
3438
+ if (__fits_in_sso(__size)) {
3439
+ __annotation_guard __g(*this);
3440
+ __set_short_size(__size);
3441
+ traits_type::copy(std::__to_address(__get_short_pointer()), std::__to_address(__ptr), __size + 1);
3442
+ __alloc_traits::deallocate(__alloc_, __ptr, __cap);
3443
+ return;
3444
+ }
3445
+
3446
+ if (__align_allocation_size(__size) == __cap)
3447
+ return;
3448
+
3449
+ # if _LIBCPP_HAS_EXCEPTIONS
3450
+ try {
3451
+ # endif // _LIBCPP_HAS_EXCEPTIONS
3452
+ __annotation_guard __g(*this);
3453
+ __long __buffer = __allocate_long_buffer(__alloc_, __size);
3454
+
3455
+ // The Standard mandates shrink_to_fit() does not increase the capacity.
3456
+ // With equal capacity keep the existing buffer. This avoids extra work
3457
+ // due to swapping the elements.
3458
+ if (__buffer.__cap_ * __endian_factor - 1 >= capacity()) {
3459
+ __alloc_traits::deallocate(__alloc_, __buffer.__data_, __buffer.__cap_ * __endian_factor);
3460
+ return;
3461
+ }
3462
+
3463
+ traits_type::copy(std::__to_address(__buffer.__data_), std::__to_address(__get_long_pointer()), __size + 1);
3464
+ __reset_internal_buffer(__buffer);
3465
+ # if _LIBCPP_HAS_EXCEPTIONS
3466
+ } catch (...) {
3467
+ return;
3468
+ }
3469
+ # endif // _LIBCPP_HAS_EXCEPTIONS
3470
+ }
3471
+
3472
+ template <class _CharT, class _Traits, class _Allocator>
3473
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 typename basic_string<_CharT, _Traits, _Allocator>::const_reference
3474
+ basic_string<_CharT, _Traits, _Allocator>::at(size_type __n) const {
3475
+ if (__n >= size())
3476
+ this->__throw_out_of_range();
3477
+ return (*this)[__n];
3478
+ }
3479
+
3480
+ template <class _CharT, class _Traits, class _Allocator>
3481
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 typename basic_string<_CharT, _Traits, _Allocator>::reference
3482
+ basic_string<_CharT, _Traits, _Allocator>::at(size_type __n) {
3483
+ if (__n >= size())
3484
+ this->__throw_out_of_range();
3485
+ return (*this)[__n];
3486
+ }
3487
+
3488
+ template <class _CharT, class _Traits, class _Allocator>
3489
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 typename basic_string<_CharT, _Traits, _Allocator>::size_type
3490
+ basic_string<_CharT, _Traits, _Allocator>::copy(value_type* __s, size_type __n, size_type __pos) const {
3491
+ size_type __sz = size();
3492
+ if (__pos > __sz)
3493
+ this->__throw_out_of_range();
3494
+ size_type __rlen = std::min(__n, __sz - __pos);
3495
+ traits_type::copy(__s, data() + __pos, __rlen);
3496
+ return __rlen;
3497
+ }
3498
+
3499
+ template <class _CharT, class _Traits, class _Allocator>
3500
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 void basic_string<_CharT, _Traits, _Allocator>::swap(basic_string& __str)
3501
+ # if _LIBCPP_STD_VER >= 14
3502
+ _NOEXCEPT
3503
+ # else
3504
+ _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || __is_nothrow_swappable_v<allocator_type>)
3505
+ # endif
3506
+ {
3507
+ _LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR(
3508
+ __alloc_traits::propagate_on_container_swap::value || __alloc_traits::is_always_equal::value ||
3509
+ __alloc_ == __str.__alloc_,
3510
+ "swapping non-equal allocators");
3511
+ if (!__is_long())
3512
+ __annotate_delete();
3513
+ if (this != std::addressof(__str) && !__str.__is_long())
3514
+ __str.__annotate_delete();
3515
+ std::swap(__rep_, __str.__rep_);
3516
+ std::__swap_allocator(__alloc_, __str.__alloc_);
3517
+ if (!__is_long())
3518
+ __annotate_new(__get_short_size());
3519
+ if (this != std::addressof(__str) && !__str.__is_long())
3520
+ __str.__annotate_new(__str.__get_short_size());
3521
+ }
3522
+
3523
+ // compare
3524
+
3525
+ template <class _CharT, class _Traits, class _Allocator>
3526
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 int basic_string<_CharT, _Traits, _Allocator>::compare(
3527
+ size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const {
3528
+ _LIBCPP_ASSERT_NON_NULL(__n2 == 0 || __s != nullptr, "string::compare(): received nullptr");
3529
+ size_type __sz = size();
3530
+ if (__pos1 > __sz || __n2 == npos)
3531
+ this->__throw_out_of_range();
3532
+ size_type __rlen = std::min(__n1, __sz - __pos1);
3533
+ int __r = traits_type::compare(data() + __pos1, __s, std::min(__rlen, __n2));
3534
+ if (__r == 0) {
3535
+ if (__rlen < __n2)
3536
+ __r = -1;
3537
+ else if (__rlen > __n2)
3538
+ __r = 1;
3539
+ }
3540
+ return __r;
3541
+ }
3542
+
3543
+ // __invariants
3544
+
3545
+ template <class _CharT, class _Traits, class _Allocator>
3546
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 bool basic_string<_CharT, _Traits, _Allocator>::__invariants() const {
3547
+ if (size() > capacity())
3548
+ return false;
3549
+ if (capacity() < __min_cap - 1)
3550
+ return false;
3551
+ if (data() == nullptr)
3552
+ return false;
3553
+ if (!_Traits::eq(data()[size()], value_type()))
3554
+ return false;
3555
+ return true;
3556
+ }
3557
+
3558
+ // operator==
3559
+
3560
+ template <class _CharT, class _Traits, class _Allocator>
3561
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI bool
3562
+ operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3563
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3564
+ size_t __lhs_sz = __lhs.size();
3565
+ return __lhs_sz == __rhs.size() && _Traits::compare(__lhs.data(), __rhs.data(), __lhs_sz) == 0;
3566
+ }
3567
+
3568
+ template <class _CharT, class _Traits, class _Allocator>
3569
+ inline _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI bool
3570
+ operator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3571
+ const _CharT* _LIBCPP_DIAGNOSE_NULLPTR __rhs) _NOEXCEPT {
3572
+ _LIBCPP_ASSERT_NON_NULL(__rhs != nullptr, "operator==(basic_string, char*): received nullptr");
3573
+
3574
+ using _String = basic_string<_CharT, _Traits, _Allocator>;
3575
+
3576
+ size_t __rhs_len = _Traits::length(__rhs);
3577
+ if (__builtin_constant_p(__rhs_len) && !_String::__fits_in_sso(__rhs_len)) {
3578
+ if (!__lhs.__is_long())
3579
+ return false;
3580
+ }
3581
+ if (__rhs_len != __lhs.size())
3582
+ return false;
3583
+ return __lhs.compare(0, _String::npos, __rhs, __rhs_len) == 0;
3584
+ }
3585
+
3586
+ # if _LIBCPP_STD_VER <= 17
3587
+ template <class _CharT, class _Traits, class _Allocator>
3588
+ inline _LIBCPP_HIDE_FROM_ABI bool
3589
+ operator==(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3590
+ return __rhs == __lhs;
3591
+ }
3592
+ # endif // _LIBCPP_STD_VER <= 17
3593
+
3594
+ # if _LIBCPP_STD_VER >= 20
3595
+
3596
+ template <class _CharT, class _Traits, class _Allocator>
3597
+ _LIBCPP_HIDE_FROM_ABI constexpr auto operator<=>(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3598
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) noexcept {
3599
+ return basic_string_view<_CharT, _Traits>(__lhs) <=> basic_string_view<_CharT, _Traits>(__rhs);
3600
+ }
3601
+
3602
+ template <class _CharT, class _Traits, class _Allocator>
3603
+ _LIBCPP_HIDE_FROM_ABI constexpr auto
3604
+ operator<=>(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) {
3605
+ return basic_string_view<_CharT, _Traits>(__lhs) <=> basic_string_view<_CharT, _Traits>(__rhs);
3606
+ }
3607
+
3608
+ # else // _LIBCPP_STD_VER >= 20
3609
+
3610
+ template <class _CharT, class _Traits, class _Allocator>
3611
+ inline _LIBCPP_HIDE_FROM_ABI bool operator!=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3612
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3613
+ return !(__lhs == __rhs);
3614
+ }
3615
+
3616
+ template <class _CharT, class _Traits, class _Allocator>
3617
+ inline _LIBCPP_HIDE_FROM_ABI bool
3618
+ operator!=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3619
+ return !(__lhs == __rhs);
3620
+ }
3621
+
3622
+ template <class _CharT, class _Traits, class _Allocator>
3623
+ inline _LIBCPP_HIDE_FROM_ABI bool
3624
+ operator!=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3625
+ return !(__lhs == __rhs);
3626
+ }
3627
+
3628
+ // operator<
3629
+
3630
+ template <class _CharT, class _Traits, class _Allocator>
3631
+ inline _LIBCPP_HIDE_FROM_ABI bool operator<(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3632
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3633
+ return __lhs.compare(__rhs) < 0;
3634
+ }
3635
+
3636
+ template <class _CharT, class _Traits, class _Allocator>
3637
+ inline _LIBCPP_HIDE_FROM_ABI bool
3638
+ operator<(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3639
+ return __lhs.compare(__rhs) < 0;
3640
+ }
3641
+
3642
+ template <class _CharT, class _Traits, class _Allocator>
3643
+ inline _LIBCPP_HIDE_FROM_ABI bool
3644
+ operator<(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3645
+ return __rhs.compare(__lhs) > 0;
3646
+ }
3647
+
3648
+ // operator>
3649
+
3650
+ template <class _CharT, class _Traits, class _Allocator>
3651
+ inline _LIBCPP_HIDE_FROM_ABI bool operator>(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3652
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3653
+ return __rhs < __lhs;
3654
+ }
3655
+
3656
+ template <class _CharT, class _Traits, class _Allocator>
3657
+ inline _LIBCPP_HIDE_FROM_ABI bool
3658
+ operator>(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3659
+ return __rhs < __lhs;
3660
+ }
3661
+
3662
+ template <class _CharT, class _Traits, class _Allocator>
3663
+ inline _LIBCPP_HIDE_FROM_ABI bool
3664
+ operator>(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3665
+ return __rhs < __lhs;
3666
+ }
3667
+
3668
+ // operator<=
3669
+
3670
+ template <class _CharT, class _Traits, class _Allocator>
3671
+ inline _LIBCPP_HIDE_FROM_ABI bool operator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3672
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3673
+ return !(__rhs < __lhs);
3674
+ }
3675
+
3676
+ template <class _CharT, class _Traits, class _Allocator>
3677
+ inline _LIBCPP_HIDE_FROM_ABI bool
3678
+ operator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3679
+ return !(__rhs < __lhs);
3680
+ }
3681
+
3682
+ template <class _CharT, class _Traits, class _Allocator>
3683
+ inline _LIBCPP_HIDE_FROM_ABI bool
3684
+ operator<=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3685
+ return !(__rhs < __lhs);
3686
+ }
3687
+
3688
+ // operator>=
3689
+
3690
+ template <class _CharT, class _Traits, class _Allocator>
3691
+ inline _LIBCPP_HIDE_FROM_ABI bool operator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3692
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3693
+ return !(__lhs < __rhs);
3694
+ }
3695
+
3696
+ template <class _CharT, class _Traits, class _Allocator>
3697
+ inline _LIBCPP_HIDE_FROM_ABI bool
3698
+ operator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) _NOEXCEPT {
3699
+ return !(__lhs < __rhs);
3700
+ }
3701
+
3702
+ template <class _CharT, class _Traits, class _Allocator>
3703
+ inline _LIBCPP_HIDE_FROM_ABI bool
3704
+ operator>=(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT {
3705
+ return !(__lhs < __rhs);
3706
+ }
3707
+ # endif // _LIBCPP_STD_VER >= 20
3708
+
3709
+ // operator +
3710
+
3711
+ template <class _CharT, class _Traits, class _Allocator>
3712
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3713
+ __concatenate_strings(const _Allocator& __alloc,
3714
+ __type_identity_t<basic_string_view<_CharT, _Traits> > __str1,
3715
+ __type_identity_t<basic_string_view<_CharT, _Traits> > __str2) {
3716
+ using _String = basic_string<_CharT, _Traits, _Allocator>;
3717
+ _String __r(__uninitialized_size_tag(),
3718
+ __str1.size() + __str2.size(),
3719
+ _String::__alloc_traits::select_on_container_copy_construction(__alloc));
3720
+ auto __ptr = std::__to_address(__r.__get_pointer());
3721
+ _Traits::copy(__ptr, __str1.data(), __str1.size());
3722
+ _Traits::copy(__ptr + __str1.size(), __str2.data(), __str2.size());
3723
+ _Traits::assign(__ptr[__str1.size() + __str2.size()], _CharT());
3724
+ return __r;
3725
+ }
3726
+
3727
+ template <class _CharT, class _Traits, class _Allocator>
3728
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3729
+ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3730
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3731
+ return std::__concatenate_strings<_CharT, _Traits>(__lhs.get_allocator(), __lhs, __rhs);
3732
+ }
3733
+
3734
+ template <class _CharT, class _Traits, class _Allocator>
3735
+ _LIBCPP_HIDDEN _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3736
+ operator+(const _CharT* __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3737
+ return std::__concatenate_strings<_CharT, _Traits>(__rhs.get_allocator(), __lhs, __rhs);
3738
+ }
3739
+
3740
+ extern template _LIBCPP_EXPORTED_FROM_ABI string operator+
3741
+ <char, char_traits<char>, allocator<char> >(char const*, string const&);
3742
+
3743
+ template <class _CharT, class _Traits, class _Allocator>
3744
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3745
+ operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3746
+ return std::__concatenate_strings<_CharT, _Traits>(
3747
+ __rhs.get_allocator(), basic_string_view<_CharT, _Traits>(std::addressof(__lhs), 1), __rhs);
3748
+ }
3749
+
3750
+ template <class _CharT, class _Traits, class _Allocator>
3751
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3752
+ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs) {
3753
+ return std::__concatenate_strings<_CharT, _Traits>(__lhs.get_allocator(), __lhs, __rhs);
3754
+ }
3755
+
3756
+ template <class _CharT, class _Traits, class _Allocator>
3757
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3758
+ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs) {
3759
+ return std::__concatenate_strings<_CharT, _Traits>(
3760
+ __lhs.get_allocator(), __lhs, basic_string_view<_CharT, _Traits>(std::addressof(__rhs), 1));
3761
+ }
3762
+ # if _LIBCPP_STD_VER >= 26
3763
+
3764
+ template <class _CharT, class _Traits, class _Allocator>
3765
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string<_CharT, _Traits, _Allocator>
3766
+ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
3767
+ type_identity_t<basic_string_view<_CharT, _Traits>> __rhs) {
3768
+ return std::__concatenate_strings<_CharT, _Traits>(__lhs.get_allocator(), __lhs, __rhs);
3769
+ }
3770
+
3771
+ template <class _CharT, class _Traits, class _Allocator>
3772
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string<_CharT, _Traits, _Allocator>
3773
+ operator+(type_identity_t<basic_string_view<_CharT, _Traits>> __lhs,
3774
+ const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3775
+ return std::__concatenate_strings<_CharT, _Traits>(__rhs.get_allocator(), __lhs, __rhs);
3776
+ }
3777
+
3778
+ # endif // _LIBCPP_STD_VER >= 26
3779
+
3780
+ # ifndef _LIBCPP_CXX03_LANG
3781
+
3782
+ template <class _CharT, class _Traits, class _Allocator>
3783
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3784
+ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs) {
3785
+ return std::move(__lhs.append(__rhs));
3786
+ }
3787
+
3788
+ template <class _CharT, class _Traits, class _Allocator>
3789
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3790
+ operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs) {
3791
+ return std::move(__rhs.insert(0, __lhs));
3792
+ }
3793
+
3794
+ template <class _CharT, class _Traits, class _Allocator>
3795
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3796
+ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs) {
3797
+ return std::move(__lhs.append(__rhs));
3798
+ }
3799
+
3800
+ template <class _CharT, class _Traits, class _Allocator>
3801
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3802
+ operator+(const _CharT* __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs) {
3803
+ return std::move(__rhs.insert(0, __lhs));
3804
+ }
3805
+
3806
+ template <class _CharT, class _Traits, class _Allocator>
3807
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3808
+ operator+(_CharT __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs) {
3809
+ __rhs.insert(__rhs.begin(), __lhs);
3810
+ return std::move(__rhs);
3811
+ }
3812
+
3813
+ template <class _CharT, class _Traits, class _Allocator>
3814
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3815
+ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const _CharT* __rhs) {
3816
+ return std::move(__lhs.append(__rhs));
3817
+ }
3818
+
3819
+ template <class _CharT, class _Traits, class _Allocator>
3820
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<_CharT, _Traits, _Allocator>
3821
+ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, _CharT __rhs) {
3822
+ __lhs.push_back(__rhs);
3823
+ return std::move(__lhs);
3824
+ }
3825
+
3826
+ # endif // _LIBCPP_CXX03_LANG
3827
+
3828
+ # if _LIBCPP_STD_VER >= 26
3829
+
3830
+ template <class _CharT, class _Traits, class _Allocator>
3831
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string<_CharT, _Traits, _Allocator>
3832
+ operator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs,
3833
+ type_identity_t<basic_string_view<_CharT, _Traits>> __rhs) {
3834
+ return std::move(__lhs.append(__rhs));
3835
+ }
3836
+
3837
+ template <class _CharT, class _Traits, class _Allocator>
3838
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string<_CharT, _Traits, _Allocator>
3839
+ operator+(type_identity_t<basic_string_view<_CharT, _Traits>> __lhs,
3840
+ basic_string<_CharT, _Traits, _Allocator>&& __rhs) {
3841
+ return std::move(__rhs.insert(0, __lhs));
3842
+ }
3843
+
3844
+ # endif // _LIBCPP_STD_VER >= 26
3845
+
3846
+ // swap
3847
+
3848
+ template <class _CharT, class _Traits, class _Allocator>
3849
+ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
3850
+ swap(basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>& __rhs)
3851
+ _NOEXCEPT_(_NOEXCEPT_(__lhs.swap(__rhs))) {
3852
+ __lhs.swap(__rhs);
3853
+ }
3854
+
3855
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI int stoi(const string& __str, size_t* __idx = nullptr, int __base = 10);
3856
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI unsigned long
3857
+ stoul(const string& __str, size_t* __idx = nullptr, int __base = 10);
3858
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI long stol(const string& __str, size_t* __idx = nullptr, int __base = 10);
3859
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI long long
3860
+ stoll(const string& __str, size_t* __idx = nullptr, int __base = 10);
3861
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI unsigned long long
3862
+ stoull(const string& __str, size_t* __idx = nullptr, int __base = 10);
3863
+
3864
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI float stof(const string& __str, size_t* __idx = nullptr);
3865
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI double stod(const string& __str, size_t* __idx = nullptr);
3866
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI long double stold(const string& __str, size_t* __idx = nullptr);
3867
+
3868
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(int __val);
3869
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(unsigned __val);
3870
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(long __val);
3871
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(unsigned long __val);
3872
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(long long __val);
3873
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(unsigned long long __val);
3874
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(float __val);
3875
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(double __val);
3876
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI string to_string(long double __val);
3877
+
3878
+ # if _LIBCPP_HAS_WIDE_CHARACTERS
3879
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI int stoi(const wstring& __str, size_t* __idx = nullptr, int __base = 10);
3880
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI long stol(const wstring& __str, size_t* __idx = nullptr, int __base = 10);
3881
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI unsigned long
3882
+ stoul(const wstring& __str, size_t* __idx = nullptr, int __base = 10);
3883
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI long long
3884
+ stoll(const wstring& __str, size_t* __idx = nullptr, int __base = 10);
3885
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI unsigned long long
3886
+ stoull(const wstring& __str, size_t* __idx = nullptr, int __base = 10);
3887
+
3888
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI float stof(const wstring& __str, size_t* __idx = nullptr);
3889
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI double stod(const wstring& __str, size_t* __idx = nullptr);
3890
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI long double stold(const wstring& __str, size_t* __idx = nullptr);
3891
+
3892
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(int __val);
3893
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(unsigned __val);
3894
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(long __val);
3895
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(unsigned long __val);
3896
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(long long __val);
3897
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(unsigned long long __val);
3898
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(float __val);
3899
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(double __val);
3900
+ [[__nodiscard__]] _LIBCPP_EXPORTED_FROM_ABI wstring to_wstring(long double __val);
3901
+ # endif // _LIBCPP_HAS_WIDE_CHARACTERS
3902
+
3903
+ template <class _CharT, class _Traits, class _Allocator>
3904
+ _LIBCPP_TEMPLATE_DATA_VIS const typename basic_string<_CharT, _Traits, _Allocator>::size_type
3905
+ basic_string<_CharT, _Traits, _Allocator>::npos;
3906
+
3907
+ template <class _CharT, class _Allocator>
3908
+ struct __string_hash : public __unary_function<basic_string<_CharT, char_traits<_CharT>, _Allocator>, size_t> {
3909
+ [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t
3910
+ operator()(const basic_string<_CharT, char_traits<_CharT>, _Allocator>& __val) const _NOEXCEPT {
3911
+ return std::__do_string_hash(__val.data(), __val.data() + __val.size());
3912
+ }
3913
+ };
3914
+
3915
+ template <class _Allocator>
3916
+ struct hash<basic_string<char, char_traits<char>, _Allocator> > : __string_hash<char, _Allocator> {};
3917
+
3918
+ # if _LIBCPP_HAS_CHAR8_T
3919
+ template <class _Allocator>
3920
+ struct hash<basic_string<char8_t, char_traits<char8_t>, _Allocator> > : __string_hash<char8_t, _Allocator> {};
3921
+ # endif
3922
+
3923
+ template <class _Allocator>
3924
+ struct hash<basic_string<char16_t, char_traits<char16_t>, _Allocator> > : __string_hash<char16_t, _Allocator> {};
3925
+
3926
+ template <class _Allocator>
3927
+ struct hash<basic_string<char32_t, char_traits<char32_t>, _Allocator> > : __string_hash<char32_t, _Allocator> {};
3928
+
3929
+ # if _LIBCPP_HAS_WIDE_CHARACTERS
3930
+ template <class _Allocator>
3931
+ struct hash<basic_string<wchar_t, char_traits<wchar_t>, _Allocator> > : __string_hash<wchar_t, _Allocator> {};
3932
+ # endif
3933
+
3934
+ template <class _CharT, class _Traits, class _Allocator>
3935
+ _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>&
3936
+ operator<<(basic_ostream<_CharT, _Traits>& __os, const basic_string<_CharT, _Traits, _Allocator>& __str);
3937
+
3938
+ template <class _CharT, class _Traits, class _Allocator>
3939
+ _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>&
3940
+ operator>>(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str);
3941
+
3942
+ template <class _CharT, class _Traits, class _Allocator>
3943
+ _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>&
3944
+ getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm);
3945
+
3946
+ template <class _CharT, class _Traits, class _Allocator>
3947
+ inline _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>&
3948
+ getline(basic_istream<_CharT, _Traits>& __is, basic_string<_CharT, _Traits, _Allocator>& __str);
3949
+
3950
+ template <class _CharT, class _Traits, class _Allocator>
3951
+ inline _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>&
3952
+ getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm);
3953
+
3954
+ template <class _CharT, class _Traits, class _Allocator>
3955
+ inline _LIBCPP_HIDE_FROM_ABI basic_istream<_CharT, _Traits>&
3956
+ getline(basic_istream<_CharT, _Traits>&& __is, basic_string<_CharT, _Traits, _Allocator>& __str);
3957
+
3958
+ # if _LIBCPP_STD_VER >= 20
3959
+ template <class _CharT, class _Traits, class _Allocator, class _Up>
3960
+ inline _LIBCPP_HIDE_FROM_ABI constexpr typename basic_string<_CharT, _Traits, _Allocator>::size_type
3961
+ erase(basic_string<_CharT, _Traits, _Allocator>& __str, const _Up& __v) {
3962
+ auto __old_size = __str.size();
3963
+ __str.erase(std::remove(__str.begin(), __str.end(), __v), __str.end());
3964
+ return __old_size - __str.size();
3965
+ }
3966
+
3967
+ template <class _CharT, class _Traits, class _Allocator, class _Predicate>
3968
+ inline _LIBCPP_HIDE_FROM_ABI constexpr typename basic_string<_CharT, _Traits, _Allocator>::size_type
3969
+ erase_if(basic_string<_CharT, _Traits, _Allocator>& __str, _Predicate __pred) {
3970
+ auto __old_size = __str.size();
3971
+ __str.erase(std::remove_if(__str.begin(), __str.end(), __pred), __str.end());
3972
+ return __old_size - __str.size();
3973
+ }
3974
+ # endif
3975
+
3976
+ # if _LIBCPP_STD_VER >= 14
3977
+ // Literal suffixes for basic_string [basic.string.literals]
3978
+ inline namespace literals {
3979
+ inline namespace string_literals {
3980
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<char>
3981
+ operator""s(const char* __str, size_t __len) {
3982
+ return basic_string<char>(__str, __len);
3983
+ }
3984
+
3985
+ # if _LIBCPP_HAS_WIDE_CHARACTERS
3986
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
3987
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<wchar_t> operator""s(const wchar_t* __str, size_t __len) {
3988
+ return basic_string<wchar_t>(__str, __len);
3989
+ }
3990
+ # endif
3991
+
3992
+ # if _LIBCPP_HAS_CHAR8_T
3993
+ [[__nodiscard__]] inline
3994
+ _LIBCPP_HIDE_FROM_ABI constexpr basic_string<char8_t> operator""s(const char8_t* __str, size_t __len) {
3995
+ return basic_string<char8_t>(__str, __len);
3996
+ }
3997
+ # endif
3998
+
3999
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
4000
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<char16_t> operator""s(const char16_t* __str, size_t __len) {
4001
+ return basic_string<char16_t>(__str, __len);
4002
+ }
4003
+
4004
+ [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 basic_string<char32_t>
4005
+ operator""s(const char32_t* __str, size_t __len) {
4006
+ return basic_string<char32_t>(__str, __len);
4007
+ }
4008
+ } // namespace string_literals
4009
+ } // namespace literals
4010
+
4011
+ # if _LIBCPP_STD_VER >= 20
4012
+ template <>
4013
+ inline constexpr bool __format::__enable_insertable<std::basic_string<char>> = true;
4014
+ # if _LIBCPP_HAS_WIDE_CHARACTERS
4015
+ template <>
4016
+ inline constexpr bool __format::__enable_insertable<std::basic_string<wchar_t>> = true;
4017
+ # endif
4018
+ # endif
4019
+
4020
+ # endif
4021
+
4022
+ _LIBCPP_END_NAMESPACE_STD
4023
+
4024
+ _LIBCPP_POP_MACROS
4025
+
4026
+ # if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
4027
+ # include <algorithm>
4028
+ # include <concepts>
4029
+ # include <cstdlib>
4030
+ # include <iterator>
4031
+ # include <new>
4032
+ # include <optional>
4033
+ # include <type_traits>
4034
+ # include <typeinfo>
4035
+ # include <utility>
4036
+ # endif
4037
+ #endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
4038
+
4039
+ #endif // _LIBCPP_STRING