@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.296

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 (1103) hide show
  1. package/c/fcntl.zig +6 -1
  2. package/c/inttypes.zig +0 -10
  3. package/c/math.zig +52 -112
  4. package/c/pthread.zig +57 -0
  5. package/c/search.zig +1 -27
  6. package/c/stdlib/drand48.zig +0 -57
  7. package/c/stdlib.zig +31 -121
  8. package/c/string.zig +20 -7
  9. package/c/strings.zig +0 -38
  10. package/c/unistd.zig +27 -26
  11. package/c/wchar.zig +10 -0
  12. package/c.zig +2 -2
  13. package/compiler/aro/aro/CodeGen.zig +7 -8
  14. package/compiler/aro/aro/Compilation.zig +17 -17
  15. package/compiler/aro/aro/Driver.zig +14 -13
  16. package/compiler/aro/aro/Parser.zig +20 -15
  17. package/compiler/aro/aro/Pragma.zig +3 -2
  18. package/compiler/aro/aro/Preprocessor.zig +9 -6
  19. package/compiler/aro/aro/pragmas/message.zig +3 -2
  20. package/compiler/aro/aro/text_literal.zig +3 -2
  21. package/compiler/aro/assembly_backend/x86_64.zig +4 -4
  22. package/compiler/build_runner.zig +2 -4
  23. package/compiler/reduce/Walk.zig +8 -13
  24. package/compiler/resinator/compile.zig +1 -1
  25. package/compiler/resinator/cvtres.zig +4 -4
  26. package/compiler/resinator/errors.zig +7 -7
  27. package/compiler/resinator/ico.zig +4 -4
  28. package/compiler/resinator/parse.zig +2 -2
  29. package/compiler/resinator/res.zig +1 -1
  30. package/compiler/std-docs.zig +1 -1
  31. package/compiler/test_runner.zig +1 -1
  32. package/compiler/translate-c/MacroTranslator.zig +1 -1
  33. package/compiler/translate-c/Translator.zig +6 -2
  34. package/compiler/translate-c/ast.zig +16 -23
  35. package/compiler/translate-c/main.zig +1 -1
  36. package/compiler_rt/addf3.zig +1 -1
  37. package/compiler_rt/arm.zig +3 -3
  38. package/compiler_rt/atomics.zig +1 -1
  39. package/compiler_rt/comparef.zig +3 -3
  40. package/compiler_rt/cos.zig +1 -3
  41. package/compiler_rt/count0bits.zig +1 -1
  42. package/compiler_rt/divdf3.zig +2 -2
  43. package/compiler_rt/divsf3.zig +1 -1
  44. package/compiler_rt/divtf3.zig +1 -1
  45. package/compiler_rt/divxf3.zig +1 -1
  46. package/compiler_rt/exp.zig +0 -2
  47. package/compiler_rt/exp2.zig +0 -2
  48. package/compiler_rt/extendf.zig +5 -5
  49. package/compiler_rt/fabs.zig +1 -3
  50. package/compiler_rt/float_from_int.zig +3 -4
  51. package/compiler_rt/fma.zig +0 -2
  52. package/compiler_rt/fmax.zig +1 -3
  53. package/compiler_rt/fmin.zig +1 -3
  54. package/compiler_rt/fmod.zig +2 -4
  55. package/compiler_rt/limb64.zig +3 -2
  56. package/compiler_rt/log.zig +0 -2
  57. package/compiler_rt/log10.zig +0 -2
  58. package/compiler_rt/log2.zig +0 -2
  59. package/compiler_rt/mulf3.zig +2 -2
  60. package/compiler_rt/rem_pio2l.zig +1 -1
  61. package/compiler_rt/round.zig +0 -2
  62. package/compiler_rt/sin.zig +1 -3
  63. package/compiler_rt/sincos.zig +1 -3
  64. package/compiler_rt/sqrt.zig +0 -2
  65. package/compiler_rt/ssp.zig +2 -2
  66. package/compiler_rt/tan.zig +1 -3
  67. package/compiler_rt/trunc.zig +0 -2
  68. package/compiler_rt/truncf.zig +3 -3
  69. package/compiler_rt/trunctfhf2.zig +3 -0
  70. package/compiler_rt.zig +5 -26
  71. package/docs/wasm/Walk.zig +1 -3
  72. package/docs/wasm/html_render.zig +1 -2
  73. package/docs/wasm/markdown/Parser.zig +16 -20
  74. package/fuzzer.zig +2 -0
  75. package/include/__clang_spirv_builtins.h +12 -12
  76. package/include/__float_float.h +176 -0
  77. package/include/__float_header_macro.h +12 -0
  78. package/include/__float_infinity_nan.h +20 -0
  79. package/include/amo.h +131 -0
  80. package/include/amxavx512intrin.h +215 -1
  81. package/include/amxintrin.h +0 -2
  82. package/include/arm_acle.h +37 -27
  83. package/include/arm_neon.h +218 -82
  84. package/include/arm_sme.h +8 -8
  85. package/include/arm_sve.h +4162 -3782
  86. package/include/avx10_2_512bf16intrin.h +19 -12
  87. package/include/avx10_2_512convertintrin.h +1 -1
  88. package/include/avx10_2_512niintrin.h +31 -31
  89. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  90. package/include/avx10_2bf16intrin.h +54 -45
  91. package/include/avx10_2convertintrin.h +2 -2
  92. package/include/avx10_2copyintrin.h +1 -1
  93. package/include/avx10_2niintrin.h +14 -14
  94. package/include/avx10_2satcvtdsintrin.h +2 -2
  95. package/include/avx2intrin.h +275 -377
  96. package/include/avx512bf16intrin.h +25 -16
  97. package/include/avx512bitalgintrin.h +19 -30
  98. package/include/avx512bwintrin.h +386 -505
  99. package/include/avx512cdintrin.h +42 -55
  100. package/include/avx512dqintrin.h +132 -161
  101. package/include/avx512fintrin.h +1015 -1424
  102. package/include/avx512fp16intrin.h +112 -110
  103. package/include/avx512ifmaintrin.h +32 -34
  104. package/include/avx512ifmavlintrin.h +73 -46
  105. package/include/avx512vbmi2intrin.h +43 -32
  106. package/include/avx512vbmiintrin.h +19 -27
  107. package/include/avx512vbmivlintrin.h +35 -49
  108. package/include/avx512vlbf16intrin.h +32 -22
  109. package/include/avx512vlbitalgintrin.h +37 -53
  110. package/include/avx512vlbwintrin.h +470 -573
  111. package/include/avx512vlcdintrin.h +74 -102
  112. package/include/avx512vldqintrin.h +110 -127
  113. package/include/avx512vlfp16intrin.h +130 -111
  114. package/include/avx512vlintrin.h +945 -1299
  115. package/include/avx512vlvbmi2intrin.h +78 -63
  116. package/include/avx512vlvnniintrin.h +21 -18
  117. package/include/avx512vlvp2intersectintrin.h +2 -2
  118. package/include/avx512vnniintrin.h +10 -10
  119. package/include/avx512vp2intersectintrin.h +1 -2
  120. package/include/avx512vpopcntdqintrin.h +8 -10
  121. package/include/avx512vpopcntdqvlintrin.h +17 -15
  122. package/include/avxifmaintrin.h +16 -0
  123. package/include/avxintrin.h +165 -241
  124. package/include/avxvnniint16intrin.h +118 -99
  125. package/include/avxvnniint8intrin.h +56 -32
  126. package/include/avxvnniintrin.h +16 -8
  127. package/include/cpuid.h +101 -4
  128. package/include/emmintrin.h +168 -168
  129. package/include/f16cintrin.h +23 -9
  130. package/include/float.h +16 -155
  131. package/include/fma4intrin.h +98 -96
  132. package/include/fmaintrin.h +96 -66
  133. package/include/gfniintrin.h +21 -16
  134. package/include/hexagon_types.h +23 -20
  135. package/include/hvx_hexagon_protos.h +649 -860
  136. package/include/immintrin.h +0 -12
  137. package/include/intrin.h +4 -0
  138. package/include/lasxintrin.h +113 -0
  139. package/include/llvm_libc_wrappers/assert.h +3 -5
  140. package/include/llvm_libc_wrappers/ctype.h +3 -115
  141. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  142. package/include/llvm_libc_wrappers/stdio.h +10 -38
  143. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  144. package/include/llvm_libc_wrappers/string.h +2 -70
  145. package/include/llvm_libc_wrappers/time.h +4 -10
  146. package/include/mmintrin.h +188 -257
  147. package/include/module.modulemap +23 -4
  148. package/include/movrs_avx10_2_512intrin.h +2 -2
  149. package/include/movrs_avx10_2intrin.h +4 -4
  150. package/include/pmmintrin.h +12 -24
  151. package/include/ptrauth.h +16 -2
  152. package/include/riscv_mips.h +34 -0
  153. package/include/riscv_nds.h +89 -0
  154. package/include/sifive_vector.h +58 -2
  155. package/include/sm4evexintrin.h +2 -2
  156. package/include/smmintrin.h +77 -59
  157. package/include/spirvintrin.h +194 -0
  158. package/include/stddefer.h +19 -0
  159. package/include/tmmintrin.h +116 -147
  160. package/include/vaesintrin.h +1 -2
  161. package/include/xmmintrin.h +44 -70
  162. package/include/xopintrin.h +20 -10
  163. package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
  164. package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
  165. package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
  166. package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
  167. package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
  168. package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
  169. package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
  170. package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
  171. package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
  172. package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
  173. package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
  174. package/libc/include/any-linux-any/linux/android/binder.h +1 -1
  175. package/libc/include/any-linux-any/linux/bpf.h +28 -0
  176. package/libc/include/any-linux-any/linux/btrfs.h +1 -0
  177. package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
  178. package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
  179. package/libc/include/any-linux-any/linux/dpll.h +1 -0
  180. package/libc/include/any-linux-any/linux/elf.h +2 -0
  181. package/libc/include/any-linux-any/linux/ethtool.h +21 -5
  182. package/libc/include/any-linux-any/linux/fs.h +1 -0
  183. package/libc/include/any-linux-any/linux/hyperv.h +1 -1
  184. package/libc/include/any-linux-any/linux/idxd.h +134 -134
  185. package/libc/include/any-linux-any/linux/if_alg.h +1 -1
  186. package/libc/include/any-linux-any/linux/if_link.h +1 -0
  187. package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
  188. package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
  189. package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
  190. package/libc/include/any-linux-any/linux/io_uring.h +33 -2
  191. package/libc/include/any-linux-any/linux/iommufd.h +39 -0
  192. package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
  193. package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
  194. package/libc/include/any-linux-any/linux/kvm.h +30 -6
  195. package/libc/include/any-linux-any/linux/landlock.h +22 -8
  196. package/libc/include/any-linux-any/linux/magic.h +1 -0
  197. package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
  198. package/libc/include/any-linux-any/linux/mount.h +11 -2
  199. package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
  200. package/libc/include/any-linux-any/linux/mshv.h +2 -0
  201. package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
  202. package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
  203. package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
  204. package/libc/include/any-linux-any/linux/nfs.h +1 -1
  205. package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
  206. package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
  207. package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
  208. package/libc/include/any-linux-any/linux/nl80211.h +104 -3
  209. package/libc/include/any-linux-any/linux/pci.h +7 -0
  210. package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
  211. package/libc/include/any-linux-any/linux/pcitest.h +1 -0
  212. package/libc/include/any-linux-any/linux/perf_event.h +24 -3
  213. package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
  214. package/libc/include/any-linux-any/linux/prctl.h +30 -0
  215. package/libc/include/any-linux-any/linux/rseq.h +62 -5
  216. package/libc/include/any-linux-any/linux/shm.h +0 -1
  217. package/libc/include/any-linux-any/linux/stddef.h +4 -0
  218. package/libc/include/any-linux-any/linux/sysctl.h +1 -2
  219. package/libc/include/any-linux-any/linux/taskstats.h +12 -1
  220. package/libc/include/any-linux-any/linux/tcp.h +23 -3
  221. package/libc/include/any-linux-any/linux/typelimits.h +8 -0
  222. package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
  223. package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
  224. package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
  225. package/libc/include/any-linux-any/linux/vduse.h +80 -5
  226. package/libc/include/any-linux-any/linux/version.h +3 -3
  227. package/libc/include/any-linux-any/linux/vfio.h +4 -0
  228. package/libc/include/any-linux-any/linux/videodev2.h +3 -0
  229. package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
  230. package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
  231. package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
  232. package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
  233. package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
  234. package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
  235. package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
  236. package/libc/include/arc-linux-any/asm/swab.h +0 -63
  237. package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
  238. package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
  239. package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
  240. package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
  241. package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
  242. package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
  243. package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
  244. package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
  245. package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
  246. package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
  247. package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
  248. package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
  249. package/libc/include/mips-linux-any/asm/errno.h +2 -0
  250. package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
  251. package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
  252. package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
  253. package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
  254. package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
  255. package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
  256. package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
  257. package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
  258. package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
  259. package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
  260. package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
  261. package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
  262. package/libc/include/sparc-linux-any/asm/errno.h +2 -0
  263. package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
  264. package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
  265. package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
  266. package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
  267. package/libc/include/x86-linux-any/asm/kvm.h +13 -8
  268. package/libc/include/x86-linux-any/asm/svm.h +16 -16
  269. package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
  270. package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
  271. package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
  272. package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
  273. package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
  274. package/libcxx/include/__algorithm/all_of.h +11 -5
  275. package/libcxx/include/__algorithm/comp.h +4 -0
  276. package/libcxx/include/__algorithm/copy.h +28 -147
  277. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  278. package/libcxx/include/__algorithm/copy_n.h +50 -16
  279. package/libcxx/include/__algorithm/count.h +2 -2
  280. package/libcxx/include/__algorithm/equal.h +43 -55
  281. package/libcxx/include/__algorithm/fill.h +26 -8
  282. package/libcxx/include/__algorithm/fill_n.h +32 -46
  283. package/libcxx/include/__algorithm/find.h +96 -39
  284. package/libcxx/include/__algorithm/find_end.h +105 -0
  285. package/libcxx/include/__algorithm/for_each.h +18 -24
  286. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  287. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  288. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  289. package/libcxx/include/__algorithm/generate.h +4 -2
  290. package/libcxx/include/__algorithm/generate_n.h +19 -6
  291. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  292. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  293. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  294. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  295. package/libcxx/include/__algorithm/make_heap.h +16 -4
  296. package/libcxx/include/__algorithm/mismatch.h +2 -2
  297. package/libcxx/include/__algorithm/move.h +8 -19
  298. package/libcxx/include/__algorithm/move_backward.h +9 -24
  299. package/libcxx/include/__algorithm/none_of.h +4 -4
  300. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  301. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  302. package/libcxx/include/__algorithm/pstl.h +9 -9
  303. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  304. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  305. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  306. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  307. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  308. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  309. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  310. package/libcxx/include/__algorithm/rotate.h +27 -44
  311. package/libcxx/include/__algorithm/search_n.h +49 -37
  312. package/libcxx/include/__algorithm/sift_down.h +19 -18
  313. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  314. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  315. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  316. package/libcxx/include/__assertion_handler +31 -4
  317. package/libcxx/include/__atomic/atomic.h +36 -60
  318. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  319. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  320. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  321. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  322. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  323. package/libcxx/include/__atomic/contention_t.h +27 -3
  324. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  325. package/libcxx/include/__bit/countl.h +1 -2
  326. package/libcxx/include/__bit/countr.h +1 -2
  327. package/libcxx/include/__bit/has_single_bit.h +1 -1
  328. package/libcxx/include/__bit/popcount.h +0 -1
  329. package/libcxx/include/__bit/rotate.h +15 -26
  330. package/libcxx/include/__bit_reference +207 -18
  331. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  332. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  333. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  334. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  335. package/libcxx/include/__charconv/traits.h +3 -24
  336. package/libcxx/include/__chrono/day.h +11 -0
  337. package/libcxx/include/__chrono/duration.h +58 -33
  338. package/libcxx/include/__chrono/file_clock.h +4 -2
  339. package/libcxx/include/__chrono/is_clock.h +72 -0
  340. package/libcxx/include/__chrono/leap_second.h +13 -0
  341. package/libcxx/include/__chrono/month.h +13 -0
  342. package/libcxx/include/__chrono/month_weekday.h +22 -0
  343. package/libcxx/include/__chrono/monthday.h +20 -0
  344. package/libcxx/include/__chrono/steady_clock.h +1 -1
  345. package/libcxx/include/__chrono/system_clock.h +3 -3
  346. package/libcxx/include/__chrono/time_point.h +37 -13
  347. package/libcxx/include/__chrono/weekday.h +25 -0
  348. package/libcxx/include/__chrono/year.h +11 -0
  349. package/libcxx/include/__chrono/year_month.h +13 -0
  350. package/libcxx/include/__chrono/year_month_day.h +23 -0
  351. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  352. package/libcxx/include/__chrono/zoned_time.h +16 -0
  353. package/libcxx/include/__compare/is_eq.h +6 -6
  354. package/libcxx/include/__compare/strong_order.h +12 -30
  355. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  356. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  357. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  358. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  359. package/libcxx/include/__config +63 -280
  360. package/libcxx/include/__configuration/abi.h +14 -24
  361. package/libcxx/include/__configuration/availability.h +65 -118
  362. package/libcxx/include/__configuration/compiler.h +6 -6
  363. package/libcxx/include/__configuration/experimental.h +38 -0
  364. package/libcxx/include/__configuration/hardening.h +215 -0
  365. package/libcxx/include/__configuration/language.h +3 -0
  366. package/libcxx/include/__configuration/platform.h +9 -16
  367. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  368. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  369. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  370. package/libcxx/include/__exception/exception.h +6 -4
  371. package/libcxx/include/__exception/exception_ptr.h +27 -5
  372. package/libcxx/include/__exception/nested_exception.h +2 -2
  373. package/libcxx/include/__exception/operations.h +5 -5
  374. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  375. package/libcxx/include/__expected/expected.h +62 -64
  376. package/libcxx/include/__expected/unexpected.h +4 -4
  377. package/libcxx/include/__filesystem/copy_options.h +4 -4
  378. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  379. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  380. package/libcxx/include/__filesystem/directory_options.h +7 -4
  381. package/libcxx/include/__filesystem/file_status.h +3 -3
  382. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  383. package/libcxx/include/__filesystem/operations.h +97 -66
  384. package/libcxx/include/__filesystem/path.h +68 -64
  385. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  386. package/libcxx/include/__filesystem/perm_options.h +4 -4
  387. package/libcxx/include/__filesystem/perms.h +4 -4
  388. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  389. package/libcxx/include/__filesystem/space_info.h +1 -1
  390. package/libcxx/include/__filesystem/u8path.h +12 -14
  391. package/libcxx/include/__flat_map/flat_map.h +88 -71
  392. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  393. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  394. package/libcxx/include/__flat_map/utils.h +1 -0
  395. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  396. package/libcxx/include/__flat_set/flat_set.h +86 -68
  397. package/libcxx/include/__format/concepts.h +0 -14
  398. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  399. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  400. package/libcxx/include/__format/format_arg.h +7 -10
  401. package/libcxx/include/__format/format_args.h +1 -1
  402. package/libcxx/include/__format/format_context.h +5 -5
  403. package/libcxx/include/__format/format_parse_context.h +2 -2
  404. package/libcxx/include/__format/formatter_output.h +30 -34
  405. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  406. package/libcxx/include/__format/range_default_formatter.h +2 -41
  407. package/libcxx/include/__format/range_format.h +71 -0
  408. package/libcxx/include/__format/range_formatter.h +1 -0
  409. package/libcxx/include/__format/width_estimation_table.h +4 -2
  410. package/libcxx/include/__functional/bind.h +10 -15
  411. package/libcxx/include/__functional/bind_back.h +1 -1
  412. package/libcxx/include/__functional/bind_front.h +1 -1
  413. package/libcxx/include/__functional/function.h +57 -75
  414. package/libcxx/include/__functional/hash.h +1 -10
  415. package/libcxx/include/__functional/identity.h +1 -1
  416. package/libcxx/include/__functional/is_transparent.h +8 -0
  417. package/libcxx/include/__functional/mem_fn.h +2 -1
  418. package/libcxx/include/__functional/operations.h +18 -0
  419. package/libcxx/include/__functional/ranges_operations.h +7 -0
  420. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  421. package/libcxx/include/__functional/weak_result_type.h +14 -28
  422. package/libcxx/include/__fwd/ios.h +1 -1
  423. package/libcxx/include/__fwd/tuple.h +14 -0
  424. package/libcxx/include/__hash_table +371 -357
  425. package/libcxx/include/__ios/fpos.h +4 -4
  426. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  427. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  428. package/libcxx/include/__iterator/concepts.h +6 -9
  429. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  430. package/libcxx/include/__iterator/distance.h +40 -18
  431. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  432. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  433. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  434. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  435. package/libcxx/include/__iterator/iter_move.h +1 -1
  436. package/libcxx/include/__iterator/iterator.h +13 -0
  437. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  438. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  439. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  440. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  441. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  442. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  443. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  444. package/libcxx/include/__locale +3 -10
  445. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  446. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  447. package/libcxx/include/__locale_dir/messages.h +1 -1
  448. package/libcxx/include/__locale_dir/money.h +2 -2
  449. package/libcxx/include/__locale_dir/num.h +190 -243
  450. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  451. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  452. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  453. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  454. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  455. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  456. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  457. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  458. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  459. package/libcxx/include/__locale_dir/time.h +3 -7
  460. package/libcxx/include/__math/hypot.h +1 -1
  461. package/libcxx/include/__math/logarithms.h +1 -1
  462. package/libcxx/include/__math/traits.h +80 -11
  463. package/libcxx/include/__mdspan/extents.h +7 -4
  464. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  465. package/libcxx/include/__mdspan/mdspan.h +29 -23
  466. package/libcxx/include/__memory/addressof.h +7 -5
  467. package/libcxx/include/__memory/align.h +18 -1
  468. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  469. package/libcxx/include/__memory/allocator.h +14 -26
  470. package/libcxx/include/__memory/allocator_traits.h +6 -4
  471. package/libcxx/include/__memory/compressed_pair.h +15 -9
  472. package/libcxx/include/__memory/construct_at.h +12 -23
  473. package/libcxx/include/__memory/inout_ptr.h +1 -1
  474. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  475. package/libcxx/include/__memory/out_ptr.h +1 -1
  476. package/libcxx/include/__memory/pointer_traits.h +1 -1
  477. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  478. package/libcxx/include/__memory/shared_count.h +9 -30
  479. package/libcxx/include/__memory/shared_ptr.h +100 -145
  480. package/libcxx/include/__memory/temp_value.h +1 -2
  481. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  482. package/libcxx/include/__memory/unique_ptr.h +14 -16
  483. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  484. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  485. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  486. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  487. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  488. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  489. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  490. package/libcxx/include/__mutex/mutex.h +2 -2
  491. package/libcxx/include/__mutex/once_flag.h +14 -11
  492. package/libcxx/include/__mutex/tag_types.h +3 -3
  493. package/libcxx/include/__mutex/unique_lock.h +8 -7
  494. package/libcxx/include/__new/align_val_t.h +6 -0
  495. package/libcxx/include/__new/allocate.h +1 -2
  496. package/libcxx/include/__new/exceptions.h +8 -2
  497. package/libcxx/include/__new/global_new_delete.h +4 -11
  498. package/libcxx/include/__new/interference_size.h +0 -4
  499. package/libcxx/include/__new/launder.h +3 -5
  500. package/libcxx/include/__new/nothrow_t.h +1 -1
  501. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  502. package/libcxx/include/__numeric/midpoint.h +9 -14
  503. package/libcxx/include/__numeric/pstl.h +2 -2
  504. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  505. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  506. package/libcxx/include/__pstl/backends/default.h +14 -14
  507. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  508. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  509. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  510. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  511. package/libcxx/include/__random/binomial_distribution.h +10 -4
  512. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  513. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  514. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  515. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  516. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  517. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  518. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  519. package/libcxx/include/__ranges/common_view.h +7 -7
  520. package/libcxx/include/__ranges/drop_view.h +8 -8
  521. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  522. package/libcxx/include/__ranges/elements_of.h +49 -0
  523. package/libcxx/include/__ranges/empty_view.h +5 -5
  524. package/libcxx/include/__ranges/filter_view.h +10 -10
  525. package/libcxx/include/__ranges/iota_view.h +41 -22
  526. package/libcxx/include/__ranges/owning_view.h +15 -15
  527. package/libcxx/include/__ranges/ref_view.h +6 -6
  528. package/libcxx/include/__ranges/repeat_view.h +17 -10
  529. package/libcxx/include/__ranges/single_view.h +8 -8
  530. package/libcxx/include/__ranges/take_view.h +9 -9
  531. package/libcxx/include/__ranges/transform_view.h +1 -2
  532. package/libcxx/include/__ranges/view_interface.h +10 -10
  533. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  534. package/libcxx/include/__ranges/zip_view.h +20 -20
  535. package/libcxx/include/__split_buffer +612 -240
  536. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  537. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  538. package/libcxx/include/__stop_token/stop_source.h +1 -1
  539. package/libcxx/include/__stop_token/stop_state.h +4 -4
  540. package/libcxx/include/__stop_token/stop_token.h +1 -1
  541. package/libcxx/include/__string/char_traits.h +51 -31
  542. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  543. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  544. package/libcxx/include/__system_error/error_category.h +8 -8
  545. package/libcxx/include/__system_error/error_code.h +5 -5
  546. package/libcxx/include/__system_error/error_condition.h +4 -4
  547. package/libcxx/include/__system_error/system_error.h +1 -1
  548. package/libcxx/include/__thread/id.h +1 -1
  549. package/libcxx/include/__thread/jthread.h +1 -1
  550. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  551. package/libcxx/include/__thread/support/c11.h +8 -8
  552. package/libcxx/include/__thread/support/pthread.h +8 -8
  553. package/libcxx/include/__thread/support/windows.h +8 -8
  554. package/libcxx/include/__thread/thread.h +13 -8
  555. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  556. package/libcxx/include/__tree +849 -701
  557. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  558. package/libcxx/include/__tuple/tuple_element.h +0 -12
  559. package/libcxx/include/__tuple/tuple_size.h +0 -4
  560. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  561. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  562. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  563. package/libcxx/include/__type_traits/invoke.h +8 -0
  564. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  565. package/libcxx/include/__type_traits/is_array.h +26 -0
  566. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  567. package/libcxx/include/__type_traits/is_final.h +1 -1
  568. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  569. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  570. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  571. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  572. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  573. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  574. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  575. package/libcxx/include/__utility/cmp.h +19 -7
  576. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  577. package/libcxx/include/__utility/in_place.h +1 -1
  578. package/libcxx/include/__utility/integer_sequence.h +56 -41
  579. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  580. package/libcxx/include/__utility/pair.h +22 -25
  581. package/libcxx/include/__utility/scope_guard.h +2 -0
  582. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  583. package/libcxx/include/__vector/vector.h +187 -160
  584. package/libcxx/include/__vector/vector_bool.h +76 -83
  585. package/libcxx/include/any +118 -155
  586. package/libcxx/include/array +88 -56
  587. package/libcxx/include/atomic +2 -0
  588. package/libcxx/include/barrier +20 -24
  589. package/libcxx/include/bitset +49 -30
  590. package/libcxx/include/ccomplex +3 -11
  591. package/libcxx/include/chrono +47 -0
  592. package/libcxx/include/ciso646 +3 -6
  593. package/libcxx/include/complex +77 -65
  594. package/libcxx/include/complex.h +10 -10
  595. package/libcxx/include/condition_variable +3 -3
  596. package/libcxx/include/cstdalign +3 -10
  597. package/libcxx/include/cstdbool +3 -10
  598. package/libcxx/include/ctgmath +2 -11
  599. package/libcxx/include/ctype.h +24 -24
  600. package/libcxx/include/cwchar +2 -2
  601. package/libcxx/include/deque +109 -225
  602. package/libcxx/include/errno.h +269 -269
  603. package/libcxx/include/exception +4 -1
  604. package/libcxx/include/ext/hash_map +7 -48
  605. package/libcxx/include/ext/hash_set +2 -8
  606. package/libcxx/include/fenv.h +43 -43
  607. package/libcxx/include/flat_map +663 -11
  608. package/libcxx/include/flat_set +543 -8
  609. package/libcxx/include/float.h +16 -16
  610. package/libcxx/include/forward_list +33 -53
  611. package/libcxx/include/fstream +57 -42
  612. package/libcxx/include/future +41 -51
  613. package/libcxx/include/initializer_list +9 -3
  614. package/libcxx/include/inttypes.h +16 -16
  615. package/libcxx/include/ios +28 -28
  616. package/libcxx/include/istream +19 -13
  617. package/libcxx/include/iterator +10 -0
  618. package/libcxx/include/latch +7 -5
  619. package/libcxx/include/limits +4 -4
  620. package/libcxx/include/list +61 -79
  621. package/libcxx/include/map +386 -274
  622. package/libcxx/include/math.h +19 -0
  623. package/libcxx/include/mdspan +1 -5
  624. package/libcxx/include/mutex +29 -19
  625. package/libcxx/include/optional +644 -149
  626. package/libcxx/include/print +9 -5
  627. package/libcxx/include/queue +39 -37
  628. package/libcxx/include/ranges +48 -0
  629. package/libcxx/include/regex +33 -31
  630. package/libcxx/include/scoped_allocator +16 -11
  631. package/libcxx/include/semaphore +15 -18
  632. package/libcxx/include/set +220 -192
  633. package/libcxx/include/shared_mutex +3 -8
  634. package/libcxx/include/span +53 -37
  635. package/libcxx/include/sstream +34 -28
  636. package/libcxx/include/stack +13 -15
  637. package/libcxx/include/stddef.h +10 -10
  638. package/libcxx/include/stdexcept +2 -2
  639. package/libcxx/include/stdio.h +20 -21
  640. package/libcxx/include/streambuf +59 -19
  641. package/libcxx/include/string +574 -573
  642. package/libcxx/include/string_view +113 -89
  643. package/libcxx/include/strstream +10 -10
  644. package/libcxx/include/syncstream +4 -4
  645. package/libcxx/include/tgmath.h +12 -12
  646. package/libcxx/include/tuple +242 -212
  647. package/libcxx/include/type_traits +8 -2
  648. package/libcxx/include/typeindex +5 -3
  649. package/libcxx/include/typeinfo +92 -89
  650. package/libcxx/include/unordered_map +179 -304
  651. package/libcxx/include/unordered_set +168 -195
  652. package/libcxx/include/utility +12 -0
  653. package/libcxx/include/valarray +106 -161
  654. package/libcxx/include/variant +25 -33
  655. package/libcxx/include/version +41 -24
  656. package/libcxx/include/wctype.h +29 -29
  657. package/libcxx/libc/hdr/errno_macros.h +3 -1
  658. package/libcxx/libc/hdr/stdint_proxy.h +18 -0
  659. package/libcxx/libc/hdr/types/wchar_t.h +23 -0
  660. package/libcxx/libc/hdr/wchar_overlay.h +69 -0
  661. package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
  662. package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
  663. package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
  664. package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
  665. package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
  666. package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
  667. package/libcxx/libc/shared/libc_common.h +5 -0
  668. package/libcxx/libc/src/__support/CPP/bit.h +50 -12
  669. package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
  670. package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
  671. package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
  672. package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
  673. package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
  674. package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
  675. package/libcxx/libc/src/__support/big_int.h +14 -14
  676. package/libcxx/libc/src/__support/common.h +3 -2
  677. package/libcxx/libc/src/__support/ctype_utils.h +19 -12
  678. package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
  679. package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
  680. package/libcxx/libc/src/__support/libc_assert.h +2 -0
  681. package/libcxx/libc/src/__support/macros/attributes.h +44 -1
  682. package/libcxx/libc/src/__support/macros/config.h +23 -0
  683. package/libcxx/libc/src/__support/macros/null_check.h +1 -2
  684. package/libcxx/libc/src/__support/macros/optimization.h +3 -0
  685. package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
  686. package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
  687. package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
  688. package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
  689. package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
  690. package/libcxx/libc/src/__support/math_extras.h +20 -4
  691. package/libcxx/libc/src/__support/str_to_float.h +98 -125
  692. package/libcxx/libc/src/__support/str_to_integer.h +39 -27
  693. package/libcxx/libc/src/__support/wctype_utils.h +588 -0
  694. package/libcxx/src/any.cpp +4 -0
  695. package/libcxx/src/atomic.cpp +365 -80
  696. package/libcxx/src/barrier.cpp +4 -3
  697. package/libcxx/src/charconv.cpp +6 -3
  698. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  699. package/libcxx/src/error_category.cpp +3 -1
  700. package/libcxx/src/exception.cpp +2 -10
  701. package/libcxx/src/experimental/time_zone.cpp +1 -1
  702. package/libcxx/src/experimental/tzdb.cpp +4 -1
  703. package/libcxx/src/filesystem/error.h +4 -22
  704. package/libcxx/src/filesystem/format_string.h +9 -18
  705. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  706. package/libcxx/src/filesystem/operations.cpp +2 -9
  707. package/libcxx/src/filesystem/path.cpp +3 -1
  708. package/libcxx/src/include/aligned_alloc.h +65 -0
  709. package/libcxx/src/include/config_elast.h +1 -1
  710. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  711. package/libcxx/src/include/overridable_function.h +8 -10
  712. package/libcxx/src/iostream.cpp +56 -37
  713. package/libcxx/src/locale.cpp +213 -196
  714. package/libcxx/src/memory.cpp +12 -14
  715. package/libcxx/src/mutex_destructor.cpp +1 -1
  716. package/libcxx/src/new.cpp +5 -5
  717. package/libcxx/src/optional.cpp +4 -0
  718. package/libcxx/src/print.cpp +9 -1
  719. package/libcxx/src/random.cpp +0 -26
  720. package/libcxx/src/string.cpp +10 -25
  721. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  722. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  723. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  724. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  725. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  726. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  727. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  728. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  729. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  730. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  731. package/libcxx/src/system_error.cpp +2 -0
  732. package/libcxx/src/thread.cpp +1 -3
  733. package/libcxx/src/valarray.cpp +1 -2
  734. package/libcxx/src/vector.cpp +2 -2
  735. package/libcxxabi/include/__cxxabi_config.h +42 -23
  736. package/libcxxabi/src/cxa_exception.cpp +4 -2
  737. package/libcxxabi/src/cxa_exception.h +16 -14
  738. package/libcxxabi/src/cxa_personality.cpp +126 -9
  739. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  740. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  741. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  742. package/libcxxabi/src/demangle/Utility.h +21 -7
  743. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  744. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  745. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  746. package/libtsan/LICENSE.TXT +311 -0
  747. package/libtsan/builtins/assembly.h +41 -8
  748. package/libtsan/interception/interception_win.cpp +4 -0
  749. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  750. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  751. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  752. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  753. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  754. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  755. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  756. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  757. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  758. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  759. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  760. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  761. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  762. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  763. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  764. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  765. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  766. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  767. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  768. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  769. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  770. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  771. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  772. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  773. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  774. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  775. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  776. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  777. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  778. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  779. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  780. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  781. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  782. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  783. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  784. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  785. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  786. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  787. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  788. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  789. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  790. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  791. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  792. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  793. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  794. package/libtsan/tsan_debugging.cpp +2 -2
  795. package/libtsan/tsan_flags.cpp +37 -0
  796. package/libtsan/tsan_flags.h +8 -0
  797. package/libtsan/tsan_flags.inc +12 -0
  798. package/libtsan/tsan_interceptors.h +9 -1
  799. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  800. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  801. package/libtsan/tsan_interface.h +3 -3
  802. package/libtsan/tsan_interface_ann.cpp +23 -9
  803. package/libtsan/tsan_mman.cpp +18 -4
  804. package/libtsan/tsan_platform.h +44 -7
  805. package/libtsan/tsan_platform_linux.cpp +42 -14
  806. package/libtsan/tsan_platform_mac.cpp +16 -3
  807. package/libtsan/tsan_report.h +14 -1
  808. package/libtsan/tsan_rtl.cpp +14 -0
  809. package/libtsan/tsan_rtl.h +7 -2
  810. package/libtsan/tsan_rtl_aarch64.S +3 -5
  811. package/libtsan/tsan_rtl_access.cpp +8 -3
  812. package/libtsan/tsan_rtl_amd64.S +2 -0
  813. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  814. package/libtsan/tsan_rtl_report.cpp +132 -65
  815. package/libtsan/tsan_rtl_thread.cpp +31 -9
  816. package/libtsan/tsan_symbolize.cpp +1 -1
  817. package/libtsan/tsan_symbolize.h +1 -1
  818. package/libtsan/tsan_trace.h +1 -1
  819. package/libunwind/include/__libunwind_config.h +11 -2
  820. package/libunwind/include/libunwind.h +117 -11
  821. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  822. package/libunwind/src/AddressSpace.hpp +42 -20
  823. package/libunwind/src/CompactUnwinder.hpp +16 -5
  824. package/libunwind/src/DwarfInstructions.hpp +24 -13
  825. package/libunwind/src/DwarfParser.hpp +62 -23
  826. package/libunwind/src/EHHeaderParser.hpp +7 -4
  827. package/libunwind/src/Registers.hpp +226 -22
  828. package/libunwind/src/Unwind-seh.cpp +6 -7
  829. package/libunwind/src/Unwind-wasm.c +7 -7
  830. package/libunwind/src/UnwindCursor.hpp +167 -49
  831. package/libunwind/src/UnwindLevel1.c +46 -17
  832. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  833. package/libunwind/src/UnwindRegistersSave.S +86 -2
  834. package/libunwind/src/assembly.h +5 -1
  835. package/libunwind/src/config.h +9 -0
  836. package/libunwind/src/gcc_personality_v0.c +79 -6
  837. package/libunwind/src/libunwind.cpp +104 -4
  838. package/libunwind/src/libunwind_ext.h +7 -1
  839. package/libunwind/src/shadow_stack_unwind.h +2 -2
  840. package/lldb/pretty_printers.py +948 -0
  841. package/package.json +1 -1
  842. package/std/Build/Cache/Path.zig +1 -1
  843. package/std/Build/Cache.zig +6 -6
  844. package/std/Build/Step/Compile.zig +18 -20
  845. package/std/Build/Step/ConfigHeader.zig +1 -1
  846. package/std/Build/Step/Run.zig +15 -8
  847. package/std/Build/Step.zig +3 -7
  848. package/std/Build/Watch/FsEvents.zig +1 -1
  849. package/std/Build/WebServer.zig +2 -2
  850. package/std/Build/abi.zig +1 -1
  851. package/std/Build.zig +0 -3
  852. package/std/Io/Dir.zig +9 -4
  853. package/std/Io/Dispatch.zig +8 -18
  854. package/std/Io/File/Writer.zig +8 -6
  855. package/std/Io/File.zig +0 -9
  856. package/std/Io/Kqueue.zig +3 -3
  857. package/std/Io/Reader.zig +8 -14
  858. package/std/Io/Semaphore.zig +112 -17
  859. package/std/Io/Terminal.zig +1 -1
  860. package/std/Io/Threaded.zig +183 -46
  861. package/std/Io/Uring.zig +18 -20
  862. package/std/Io/Writer.zig +10 -7
  863. package/std/Io/net/HostName.zig +11 -6
  864. package/std/Io/net.zig +11 -11
  865. package/std/Io.zig +104 -38
  866. package/std/Random/ChaCha.zig +2 -2
  867. package/std/Random/benchmark.zig +2 -2
  868. package/std/Random.zig +6 -6
  869. package/std/SemanticVersion.zig +1 -1
  870. package/std/Target/Query.zig +2 -2
  871. package/std/Target/aarch64.zig +620 -77
  872. package/std/Target/amdgcn.zig +421 -21
  873. package/std/Target/arm.zig +40 -6
  874. package/std/Target/bpf.zig +6 -0
  875. package/std/Target/hexagon.zig +41 -6
  876. package/std/Target/loongarch.zig +18 -0
  877. package/std/Target/mips.zig +6 -0
  878. package/std/Target/nvptx.zig +58 -35
  879. package/std/Target/powerpc.zig +27 -19
  880. package/std/Target/riscv.zig +415 -177
  881. package/std/Target/sparc.zig +17 -0
  882. package/std/Target/wasm.zig +7 -0
  883. package/std/Target/x86.zig +200 -31
  884. package/std/Target/xtensa.zig +65 -0
  885. package/std/Target.zig +67 -14
  886. package/std/Thread.zig +5 -2
  887. package/std/array_hash_map.zig +103 -57
  888. package/std/array_list.zig +10 -31
  889. package/std/base64.zig +5 -5
  890. package/std/bit_set.zig +86 -69
  891. package/std/c/haiku.zig +3 -0
  892. package/std/c/serenity.zig +1 -6
  893. package/std/c.zig +123 -32
  894. package/std/compress/flate/Decompress.zig +3 -4
  895. package/std/compress/zstd/Decompress.zig +7 -9
  896. package/std/crypto/25519/curve25519.zig +2 -2
  897. package/std/crypto/25519/edwards25519.zig +3 -3
  898. package/std/crypto/25519/ristretto255.zig +2 -2
  899. package/std/crypto/25519/scalar.zig +6 -6
  900. package/std/crypto/25519/x25519.zig +1 -1
  901. package/std/crypto/Certificate.zig +14 -2
  902. package/std/crypto/Sha1.zig +1 -1
  903. package/std/crypto/aegis.zig +45 -39
  904. package/std/crypto/aes_ccm.zig +22 -22
  905. package/std/crypto/aes_gcm.zig +10 -12
  906. package/std/crypto/aes_ocb.zig +9 -9
  907. package/std/crypto/argon2.zig +15 -15
  908. package/std/crypto/ascon.zig +75 -33
  909. package/std/crypto/bcrypt.zig +20 -10
  910. package/std/crypto/benchmark.zig +7 -7
  911. package/std/crypto/blake2.zig +100 -64
  912. package/std/crypto/cbc_mac.zig +1 -1
  913. package/std/crypto/chacha20.zig +10 -10
  914. package/std/crypto/cmac.zig +3 -3
  915. package/std/crypto/codecs/asn1/Oid.zig +12 -1
  916. package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
  917. package/std/crypto/codecs/asn1.zig +1 -1
  918. package/std/crypto/codecs/base64_hex_ct.zig +3 -5
  919. package/std/crypto/ecdsa.zig +9 -9
  920. package/std/crypto/ff.zig +4 -5
  921. package/std/crypto/ghash_polyval.zig +4 -4
  922. package/std/crypto/hkdf.zig +1 -1
  923. package/std/crypto/isap.zig +3 -3
  924. package/std/crypto/kangarootwelve.zig +1 -1
  925. package/std/crypto/keccak_p.zig +8 -8
  926. package/std/crypto/md5.zig +1 -1
  927. package/std/crypto/ml_dsa.zig +39 -39
  928. package/std/crypto/ml_kem.zig +12 -34
  929. package/std/crypto/modes.zig +2 -2
  930. package/std/crypto/pbkdf2.zig +1 -1
  931. package/std/crypto/pcurves/common.zig +4 -5
  932. package/std/crypto/pcurves/p256/scalar.zig +3 -3
  933. package/std/crypto/pcurves/p384/scalar.zig +2 -2
  934. package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
  935. package/std/crypto/pcurves/tests/p256.zig +5 -5
  936. package/std/crypto/pcurves/tests/p384.zig +5 -5
  937. package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
  938. package/std/crypto/salsa20.zig +8 -8
  939. package/std/crypto/sha2.zig +2 -2
  940. package/std/crypto/sha3.zig +2 -2
  941. package/std/crypto/siphash.zig +1 -1
  942. package/std/crypto/timing_safe.zig +10 -9
  943. package/std/crypto/tls/Client.zig +89 -13
  944. package/std/crypto/tls.zig +1 -1
  945. package/std/crypto.zig +4 -3
  946. package/std/debug/Dwarf.zig +15 -12
  947. package/std/debug/Pdb.zig +25 -17
  948. package/std/debug.zig +14 -8
  949. package/std/deque.zig +1 -1
  950. package/std/elf.zig +1 -1
  951. package/std/enums.zig +8 -8
  952. package/std/fmt/parse_float/decimal.zig +1 -1
  953. package/std/fmt/parse_float.zig +1 -1
  954. package/std/fmt.zig +14 -10
  955. package/std/fs/path.zig +7 -5
  956. package/std/hash/Adler32.zig +3 -3
  957. package/std/hash/benchmark.zig +2 -2
  958. package/std/hash/wyhash.zig +2 -2
  959. package/std/hash/xxhash.zig +0 -6
  960. package/std/hash_map.zig +20 -1
  961. package/std/heap/BufferFirstAllocator.zig +165 -0
  962. package/std/heap/debug_allocator.zig +2 -2
  963. package/std/heap/memory_pool.zig +34 -197
  964. package/std/heap.zig +2 -133
  965. package/std/http/Client.zig +21 -24
  966. package/std/http.zig +4 -5
  967. package/std/json/Scanner.zig +2 -2
  968. package/std/json/static.zig +2 -2
  969. package/std/{builtin.zig → lang.zig} +5 -1
  970. package/std/leb128.zig +2 -2
  971. package/std/math/big/int.zig +5 -5
  972. package/std/math/big.zig +4 -4
  973. package/std/math/copysign.zig +1 -1
  974. package/std/math/float.zig +62 -0
  975. package/std/math/frexp.zig +4 -4
  976. package/std/math/ilogb.zig +1 -1
  977. package/std/math/isfinite.zig +1 -1
  978. package/std/math/isinf.zig +1 -1
  979. package/std/math/isnan.zig +1 -2
  980. package/std/math/isnormal.zig +2 -2
  981. package/std/math/iszero.zig +2 -2
  982. package/std/math/ldexp.zig +2 -2
  983. package/std/math/log10.zig +0 -2
  984. package/std/math/modf.zig +1 -2
  985. package/std/math/nextafter.zig +3 -4
  986. package/std/math/pow.zig +1 -1
  987. package/std/math/powi.zig +2 -3
  988. package/std/math/signbit.zig +0 -1
  989. package/std/math.zig +21 -26
  990. package/std/mem/Allocator.zig +0 -6
  991. package/std/mem.zig +31 -31
  992. package/std/meta/trailer_flags.zig +1 -1
  993. package/std/meta.zig +4 -36
  994. package/std/multi_array_list.zig +24 -0
  995. package/std/os/emscripten.zig +7 -6
  996. package/std/os/linux/IoUring.zig +2 -0
  997. package/std/os/linux/aarch64.zig +41 -12
  998. package/std/os/linux/arc.zig +41 -12
  999. package/std/os/linux/arm.zig +41 -12
  1000. package/std/os/linux/bpf.zig +6 -0
  1001. package/std/os/linux/hexagon.zig +33 -11
  1002. package/std/os/linux/ioctl.zig +2 -2
  1003. package/std/os/linux/loongarch32.zig +41 -13
  1004. package/std/os/linux/loongarch64.zig +41 -12
  1005. package/std/os/linux/m68k.zig +41 -13
  1006. package/std/os/linux/mips.zig +67 -36
  1007. package/std/os/linux/mips64.zig +60 -29
  1008. package/std/os/linux/mipsn32.zig +60 -29
  1009. package/std/os/linux/or1k.zig +41 -12
  1010. package/std/os/linux/powerpc.zig +41 -12
  1011. package/std/os/linux/powerpc64.zig +41 -12
  1012. package/std/os/linux/riscv32.zig +41 -12
  1013. package/std/os/linux/riscv64.zig +41 -12
  1014. package/std/os/linux/s390x.zig +44 -7
  1015. package/std/os/linux/sparc64.zig +83 -52
  1016. package/std/os/linux/syscalls.zig +26 -1
  1017. package/std/os/linux/thumb.zig +52 -36
  1018. package/std/os/linux/x32.zig +41 -12
  1019. package/std/os/linux/x86.zig +44 -15
  1020. package/std/os/linux/x86_64.zig +41 -12
  1021. package/std/os/linux.zig +416 -450
  1022. package/std/os/plan9.zig +1 -1
  1023. package/std/os/uefi/hii.zig +1 -1
  1024. package/std/os/uefi/tables/boot_services.zig +9 -8
  1025. package/std/os/uefi/tables/runtime_services.zig +1 -1
  1026. package/std/os/windows.zig +130 -1
  1027. package/std/os.zig +41 -0
  1028. package/std/posix.zig +1 -1
  1029. package/std/process/Environ.zig +1 -1
  1030. package/std/process.zig +5 -4
  1031. package/std/simd.zig +4 -21
  1032. package/std/sort.zig +3 -3
  1033. package/std/start.zig +17 -4
  1034. package/std/std.zig +8 -1
  1035. package/std/tar/Writer.zig +39 -33
  1036. package/std/tar.zig +8 -4
  1037. package/std/testing.zig +2 -2
  1038. package/std/unicode.zig +13 -8
  1039. package/std/zig/Ast/Render.zig +6 -30
  1040. package/std/zig/Ast.zig +12 -37
  1041. package/std/zig/AstGen.zig +175 -332
  1042. package/std/zig/AstRlAnnotate.zig +1 -22
  1043. package/std/zig/AstSmith.zig +5 -11
  1044. package/std/zig/BuiltinFn.zig +0 -32
  1045. package/std/zig/ErrorBundle.zig +6 -2
  1046. package/std/zig/LibCDirs.zig +15 -6
  1047. package/std/zig/LibCInstallation.zig +34 -12
  1048. package/std/zig/Parse.zig +11 -76
  1049. package/std/zig/TokenSmith.zig +0 -6
  1050. package/std/zig/WindowsSdk.zig +18 -18
  1051. package/std/zig/Zir.zig +65 -132
  1052. package/std/zig/ZonGen.zig +19 -27
  1053. package/std/zig/llvm/Builder.zig +39 -33
  1054. package/std/zig/llvm/bitcode_writer.zig +3 -3
  1055. package/std/zig/llvm/ir.zig +8 -8
  1056. package/std/zig/system/arm.zig +56 -2
  1057. package/std/zig/system/windows.zig +34 -1
  1058. package/std/zig/system/x86.zig +60 -16
  1059. package/std/zig/system.zig +0 -10
  1060. package/std/zig/target.zig +1 -4
  1061. package/std/zig/tokenizer.zig +4 -43
  1062. package/std/zig.zig +3 -14
  1063. package/std/zip.zig +5 -5
  1064. package/std/zon/parse.zig +1 -1
  1065. package/zig.h +340 -1
  1066. package/compiler_rt/long_double.zig +0 -37
  1067. package/include/amxbf16transposeintrin.h +0 -94
  1068. package/include/amxcomplextransposeintrin.h +0 -303
  1069. package/include/amxfp16transposeintrin.h +0 -94
  1070. package/include/amxmovrstransposeintrin.h +0 -200
  1071. package/include/amxtf32transposeintrin.h +0 -105
  1072. package/include/amxtransposeintrin.h +0 -248
  1073. package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
  1074. package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
  1075. package/libc/mingw/math/lrintl.c +0 -18
  1076. package/libc/mingw/math/rintl.c +0 -16
  1077. package/libc/mingw/winpthreads/spinlock.c +0 -82
  1078. package/libc/musl/src/linux/tee.c +0 -8
  1079. package/libc/musl/src/math/i386/lrintl.c +0 -8
  1080. package/libc/musl/src/math/i386/rintl.c +0 -7
  1081. package/libc/musl/src/math/lrintl.c +0 -36
  1082. package/libc/musl/src/math/rintl.c +0 -29
  1083. package/libc/musl/src/math/s390x/rintl.c +0 -15
  1084. package/libc/musl/src/math/x32/lrintl.s +0 -7
  1085. package/libc/musl/src/math/x32/rintl.s +0 -6
  1086. package/libc/musl/src/math/x86_64/lrintl.c +0 -8
  1087. package/libc/musl/src/math/x86_64/rintl.c +0 -7
  1088. package/libc/musl/src/string/strdup.c +0 -10
  1089. package/libc/musl/src/string/strndup.c +0 -12
  1090. package/libc/musl/src/string/wcsdup.c +0 -10
  1091. package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
  1092. package/libc/musl/src/thread/pthread_spin_init.c +0 -6
  1093. package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
  1094. package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
  1095. package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
  1096. package/libc/musl/src/unistd/dup2.c +0 -20
  1097. package/libc/musl/src/unistd/dup3.c +0 -26
  1098. package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
  1099. package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
  1100. package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
  1101. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  1102. package/std/Build/Step/CheckObject.zig +0 -2764
  1103. /package/std/{builtin → lang}/assembly.zig +0 -0
@@ -13,54 +13,41 @@
13
13
  #include <__algorithm/equal_range.h>
14
14
  #include <__algorithm/lexicographical_compare_three_way.h>
15
15
  #include <__algorithm/lower_bound.h>
16
- #include <__algorithm/min.h>
17
16
  #include <__algorithm/ranges_equal.h>
18
17
  #include <__algorithm/ranges_inplace_merge.h>
19
18
  #include <__algorithm/ranges_is_sorted.h>
20
19
  #include <__algorithm/ranges_sort.h>
21
- #include <__algorithm/ranges_unique.h>
22
20
  #include <__algorithm/remove_if.h>
23
21
  #include <__algorithm/upper_bound.h>
24
22
  #include <__assert>
25
23
  #include <__compare/synth_three_way.h>
26
- #include <__concepts/convertible_to.h>
27
24
  #include <__concepts/swappable.h>
28
25
  #include <__config>
29
- #include <__cstddef/byte.h>
30
- #include <__cstddef/ptrdiff_t.h>
31
- #include <__flat_map/key_value_iterator.h>
32
26
  #include <__flat_map/sorted_equivalent.h>
33
27
  #include <__flat_set/ra_iterator.h>
34
28
  #include <__flat_set/utils.h>
35
- #include <__functional/invoke.h>
36
29
  #include <__functional/is_transparent.h>
37
30
  #include <__functional/operations.h>
38
31
  #include <__fwd/vector.h>
39
32
  #include <__iterator/concepts.h>
40
- #include <__iterator/distance.h>
41
33
  #include <__iterator/iterator_traits.h>
42
34
  #include <__iterator/prev.h>
43
- #include <__iterator/ranges_iterator_traits.h>
44
35
  #include <__iterator/reverse_iterator.h>
45
36
  #include <__memory/allocator_traits.h>
46
37
  #include <__memory/uses_allocator.h>
47
38
  #include <__memory/uses_allocator_construction.h>
48
- #include <__ranges/access.h>
49
39
  #include <__ranges/concepts.h>
50
40
  #include <__ranges/container_compatible_range.h>
51
41
  #include <__ranges/drop_view.h>
52
42
  #include <__ranges/from_range.h>
53
- #include <__ranges/ref_view.h>
43
+ #include <__ranges/range_adaptor.h>
54
44
  #include <__ranges/size.h>
55
45
  #include <__ranges/subrange.h>
56
- #include <__ranges/zip_view.h>
57
- #include <__type_traits/conjunction.h>
58
46
  #include <__type_traits/container_traits.h>
59
47
  #include <__type_traits/invoke.h>
60
48
  #include <__type_traits/is_allocator.h>
61
49
  #include <__type_traits/is_nothrow_constructible.h>
62
50
  #include <__type_traits/is_same.h>
63
- #include <__type_traits/maybe_const.h>
64
51
  #include <__utility/as_const.h>
65
52
  #include <__utility/exception_guard.h>
66
53
  #include <__utility/move.h>
@@ -108,16 +95,16 @@ public:
108
95
 
109
96
  public:
110
97
  // [flat.multiset.cons], constructors
111
- _LIBCPP_HIDE_FROM_ABI flat_multiset() noexcept(is_nothrow_default_constructible_v<_KeyContainer> &&
112
- is_nothrow_default_constructible_v<_Compare>)
98
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset() noexcept(
99
+ is_nothrow_default_constructible_v<_KeyContainer> && is_nothrow_default_constructible_v<_Compare>)
113
100
  : __keys_(), __compare_() {}
114
101
 
115
- _LIBCPP_HIDE_FROM_ABI flat_multiset(const flat_multiset&) = default;
102
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset(const flat_multiset&) = default;
116
103
 
117
104
  // The copy/move constructors are not specified in the spec, which means they should be defaulted.
118
105
  // However, the move constructor can potentially leave a moved-from object in an inconsistent
119
106
  // state if an exception is thrown.
120
- _LIBCPP_HIDE_FROM_ABI flat_multiset(flat_multiset&& __other) noexcept(
107
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset(flat_multiset&& __other) noexcept(
121
108
  is_nothrow_move_constructible_v<_KeyContainer> && is_nothrow_move_constructible_v<_Compare>)
122
109
  # if _LIBCPP_HAS_EXCEPTIONS
123
110
  try
@@ -134,14 +121,16 @@ public:
134
121
  # endif // _LIBCPP_HAS_EXCEPTIONS
135
122
  }
136
123
 
137
- _LIBCPP_HIDE_FROM_ABI explicit flat_multiset(const key_compare& __comp) : __keys_(), __compare_(__comp) {}
124
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multiset(const key_compare& __comp)
125
+ : __keys_(), __compare_(__comp) {}
138
126
 
139
- _LIBCPP_HIDE_FROM_ABI explicit flat_multiset(container_type __keys, const key_compare& __comp = key_compare())
127
+ _LIBCPP_HIDE_FROM_ABI
128
+ _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multiset(container_type __keys, const key_compare& __comp = key_compare())
140
129
  : __keys_(std::move(__keys)), __compare_(__comp) {
141
130
  ranges::sort(__keys_, __compare_);
142
131
  }
143
132
 
144
- _LIBCPP_HIDE_FROM_ABI
133
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
145
134
  flat_multiset(sorted_equivalent_t, container_type __keys, const key_compare& __comp = key_compare())
146
135
  : __keys_(std::move(__keys)), __compare_(__comp) {
147
136
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(ranges::is_sorted(__keys_, __compare_), "Key container is not sorted");
@@ -149,7 +138,7 @@ public:
149
138
 
150
139
  template <class _InputIterator>
151
140
  requires __has_input_iterator_category<_InputIterator>::value
152
- _LIBCPP_HIDE_FROM_ABI
141
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
153
142
  flat_multiset(_InputIterator __first, _InputIterator __last, const key_compare& __comp = key_compare())
154
143
  : __keys_(), __compare_(__comp) {
155
144
  insert(__first, __last);
@@ -157,48 +146,53 @@ public:
157
146
 
158
147
  template <class _InputIterator>
159
148
  requires __has_input_iterator_category<_InputIterator>::value
160
- _LIBCPP_HIDE_FROM_ABI flat_multiset(
149
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset(
161
150
  sorted_equivalent_t, _InputIterator __first, _InputIterator __last, const key_compare& __comp = key_compare())
162
151
  : __keys_(__first, __last), __compare_(__comp) {
163
152
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(ranges::is_sorted(__keys_, __compare_), "Key container is not sorted");
164
153
  }
165
154
 
166
155
  template <_ContainerCompatibleRange<value_type> _Range>
167
- _LIBCPP_HIDE_FROM_ABI flat_multiset(from_range_t __fr, _Range&& __rg)
156
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset(from_range_t __fr, _Range&& __rg)
168
157
  : flat_multiset(__fr, std::forward<_Range>(__rg), key_compare()) {}
169
158
 
170
159
  template <_ContainerCompatibleRange<value_type> _Range>
171
- _LIBCPP_HIDE_FROM_ABI flat_multiset(from_range_t, _Range&& __rg, const key_compare& __comp) : flat_multiset(__comp) {
160
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
161
+ flat_multiset(from_range_t, _Range&& __rg, const key_compare& __comp)
162
+ : flat_multiset(__comp) {
172
163
  insert_range(std::forward<_Range>(__rg));
173
164
  }
174
165
 
175
- _LIBCPP_HIDE_FROM_ABI flat_multiset(initializer_list<value_type> __il, const key_compare& __comp = key_compare())
166
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
167
+ flat_multiset(initializer_list<value_type> __il, const key_compare& __comp = key_compare())
176
168
  : flat_multiset(__il.begin(), __il.end(), __comp) {}
177
169
 
178
- _LIBCPP_HIDE_FROM_ABI
170
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
179
171
  flat_multiset(sorted_equivalent_t, initializer_list<value_type> __il, const key_compare& __comp = key_compare())
180
172
  : flat_multiset(sorted_equivalent, __il.begin(), __il.end(), __comp) {}
181
173
 
182
174
  template <class _Allocator>
183
175
  requires uses_allocator<container_type, _Allocator>::value
184
- _LIBCPP_HIDE_FROM_ABI explicit flat_multiset(const _Allocator& __alloc)
176
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multiset(const _Allocator& __alloc)
185
177
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc)), __compare_() {}
186
178
 
187
179
  template <class _Allocator>
188
180
  requires uses_allocator<container_type, _Allocator>::value
189
- _LIBCPP_HIDE_FROM_ABI flat_multiset(const key_compare& __comp, const _Allocator& __alloc)
181
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
182
+ flat_multiset(const key_compare& __comp, const _Allocator& __alloc)
190
183
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc)), __compare_(__comp) {}
191
184
 
192
185
  template <class _Allocator>
193
186
  requires uses_allocator<container_type, _Allocator>::value
194
- _LIBCPP_HIDE_FROM_ABI flat_multiset(const container_type& __keys, const _Allocator& __alloc)
187
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
188
+ flat_multiset(const container_type& __keys, const _Allocator& __alloc)
195
189
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc, __keys)), __compare_() {
196
190
  ranges::sort(__keys_, __compare_);
197
191
  }
198
192
 
199
193
  template <class _Allocator>
200
194
  requires uses_allocator<container_type, _Allocator>::value
201
- _LIBCPP_HIDE_FROM_ABI
195
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
202
196
  flat_multiset(const container_type& __keys, const key_compare& __comp, const _Allocator& __alloc)
203
197
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc, __keys)), __compare_(__comp) {
204
198
  ranges::sort(__keys_, __compare_);
@@ -206,14 +200,15 @@ public:
206
200
 
207
201
  template <class _Allocator>
208
202
  requires uses_allocator<container_type, _Allocator>::value
209
- _LIBCPP_HIDE_FROM_ABI flat_multiset(sorted_equivalent_t, const container_type& __keys, const _Allocator& __alloc)
203
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
204
+ flat_multiset(sorted_equivalent_t, const container_type& __keys, const _Allocator& __alloc)
210
205
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc, __keys)), __compare_() {
211
206
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(ranges::is_sorted(__keys_, __compare_), "Key container is not sorted");
212
207
  }
213
208
 
214
209
  template <class _Allocator>
215
210
  requires uses_allocator<container_type, _Allocator>::value
216
- _LIBCPP_HIDE_FROM_ABI
211
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
217
212
  flat_multiset(sorted_equivalent_t, const container_type& __keys, const key_compare& __comp, const _Allocator& __alloc)
218
213
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc, __keys)), __compare_(__comp) {
219
214
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(ranges::is_sorted(__keys_, __compare_), "Key container is not sorted");
@@ -221,13 +216,14 @@ public:
221
216
 
222
217
  template <class _Allocator>
223
218
  requires uses_allocator<container_type, _Allocator>::value
224
- _LIBCPP_HIDE_FROM_ABI flat_multiset(const flat_multiset& __other, const _Allocator& __alloc)
219
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
220
+ flat_multiset(const flat_multiset& __other, const _Allocator& __alloc)
225
221
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc, __other.__keys_)),
226
222
  __compare_(__other.__compare_) {}
227
223
 
228
224
  template <class _Allocator>
229
225
  requires uses_allocator<container_type, _Allocator>::value
230
- _LIBCPP_HIDE_FROM_ABI flat_multiset(flat_multiset&& __other, const _Allocator& __alloc)
226
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset(flat_multiset&& __other, const _Allocator& __alloc)
231
227
  # if _LIBCPP_HAS_EXCEPTIONS
232
228
  try
233
229
  # endif // _LIBCPP_HAS_EXCEPTIONS
@@ -243,14 +239,15 @@ public:
243
239
 
244
240
  template <class _InputIterator, class _Allocator>
245
241
  requires(__has_input_iterator_category<_InputIterator>::value && uses_allocator<container_type, _Allocator>::value)
246
- _LIBCPP_HIDE_FROM_ABI flat_multiset(_InputIterator __first, _InputIterator __last, const _Allocator& __alloc)
242
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
243
+ flat_multiset(_InputIterator __first, _InputIterator __last, const _Allocator& __alloc)
247
244
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc)), __compare_() {
248
245
  insert(__first, __last);
249
246
  }
250
247
 
251
248
  template <class _InputIterator, class _Allocator>
252
249
  requires(__has_input_iterator_category<_InputIterator>::value && uses_allocator<container_type, _Allocator>::value)
253
- _LIBCPP_HIDE_FROM_ABI
250
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
254
251
  flat_multiset(_InputIterator __first, _InputIterator __last, const key_compare& __comp, const _Allocator& __alloc)
255
252
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc)), __compare_(__comp) {
256
253
  insert(__first, __last);
@@ -258,7 +255,7 @@ public:
258
255
 
259
256
  template <class _InputIterator, class _Allocator>
260
257
  requires(__has_input_iterator_category<_InputIterator>::value && uses_allocator<container_type, _Allocator>::value)
261
- _LIBCPP_HIDE_FROM_ABI
258
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
262
259
  flat_multiset(sorted_equivalent_t, _InputIterator __first, _InputIterator __last, const _Allocator& __alloc)
263
260
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc, __first, __last)), __compare_() {
264
261
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(ranges::is_sorted(__keys_, __compare_), "Key container is not sorted");
@@ -266,53 +263,57 @@ public:
266
263
 
267
264
  template <class _InputIterator, class _Allocator>
268
265
  requires(__has_input_iterator_category<_InputIterator>::value && uses_allocator<container_type, _Allocator>::value)
269
- _LIBCPP_HIDE_FROM_ABI
270
- flat_multiset(sorted_equivalent_t,
271
- _InputIterator __first,
272
- _InputIterator __last,
273
- const key_compare& __comp,
274
- const _Allocator& __alloc)
266
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset(
267
+ sorted_equivalent_t,
268
+ _InputIterator __first,
269
+ _InputIterator __last,
270
+ const key_compare& __comp,
271
+ const _Allocator& __alloc)
275
272
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc, __first, __last)), __compare_(__comp) {
276
273
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(ranges::is_sorted(__keys_, __compare_), "Key container is not sorted");
277
274
  }
278
275
 
279
276
  template <_ContainerCompatibleRange<value_type> _Range, class _Allocator>
280
277
  requires uses_allocator<container_type, _Allocator>::value
281
- _LIBCPP_HIDE_FROM_ABI flat_multiset(from_range_t, _Range&& __rg, const _Allocator& __alloc)
278
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
279
+ flat_multiset(from_range_t, _Range&& __rg, const _Allocator& __alloc)
282
280
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc)), __compare_() {
283
281
  insert_range(std::forward<_Range>(__rg));
284
282
  }
285
283
 
286
284
  template <_ContainerCompatibleRange<value_type> _Range, class _Allocator>
287
285
  requires uses_allocator<container_type, _Allocator>::value
288
- _LIBCPP_HIDE_FROM_ABI flat_multiset(from_range_t, _Range&& __rg, const key_compare& __comp, const _Allocator& __alloc)
286
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
287
+ flat_multiset(from_range_t, _Range&& __rg, const key_compare& __comp, const _Allocator& __alloc)
289
288
  : __keys_(std::make_obj_using_allocator<container_type>(__alloc)), __compare_(__comp) {
290
289
  insert_range(std::forward<_Range>(__rg));
291
290
  }
292
291
 
293
292
  template <class _Allocator>
294
293
  requires uses_allocator<container_type, _Allocator>::value
295
- _LIBCPP_HIDE_FROM_ABI flat_multiset(initializer_list<value_type> __il, const _Allocator& __alloc)
294
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
295
+ flat_multiset(initializer_list<value_type> __il, const _Allocator& __alloc)
296
296
  : flat_multiset(__il.begin(), __il.end(), __alloc) {}
297
297
 
298
298
  template <class _Allocator>
299
299
  requires uses_allocator<container_type, _Allocator>::value
300
- _LIBCPP_HIDE_FROM_ABI
300
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
301
301
  flat_multiset(initializer_list<value_type> __il, const key_compare& __comp, const _Allocator& __alloc)
302
302
  : flat_multiset(__il.begin(), __il.end(), __comp, __alloc) {}
303
303
 
304
304
  template <class _Allocator>
305
305
  requires uses_allocator<container_type, _Allocator>::value
306
- _LIBCPP_HIDE_FROM_ABI flat_multiset(sorted_equivalent_t, initializer_list<value_type> __il, const _Allocator& __alloc)
306
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
307
+ flat_multiset(sorted_equivalent_t, initializer_list<value_type> __il, const _Allocator& __alloc)
307
308
  : flat_multiset(sorted_equivalent, __il.begin(), __il.end(), __alloc) {}
308
309
 
309
310
  template <class _Allocator>
310
311
  requires uses_allocator<container_type, _Allocator>::value
311
- _LIBCPP_HIDE_FROM_ABI flat_multiset(
312
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset(
312
313
  sorted_equivalent_t, initializer_list<value_type> __il, const key_compare& __comp, const _Allocator& __alloc)
313
314
  : flat_multiset(sorted_equivalent, __il.begin(), __il.end(), __comp, __alloc) {}
314
315
 
315
- _LIBCPP_HIDE_FROM_ABI flat_multiset& operator=(initializer_list<value_type> __il) {
316
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset& operator=(initializer_list<value_type> __il) {
316
317
  clear();
317
318
  insert(__il);
318
319
  return *this;
@@ -321,9 +322,9 @@ public:
321
322
  // copy/move assignment are not specified in the spec (defaulted)
322
323
  // but move assignment can potentially leave moved from object in an inconsistent
323
324
  // state if an exception is thrown
324
- _LIBCPP_HIDE_FROM_ABI flat_multiset& operator=(const flat_multiset&) = default;
325
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset& operator=(const flat_multiset&) = default;
325
326
 
326
- _LIBCPP_HIDE_FROM_ABI flat_multiset& operator=(flat_multiset&& __other) noexcept(
327
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multiset& operator=(flat_multiset&& __other) noexcept(
327
328
  is_nothrow_move_assignable_v<_KeyContainer> && is_nothrow_move_assignable_v<_Compare>) {
328
329
  auto __clear_other_guard = std::__make_scope_guard([&]() noexcept { __other.clear() /* noexcept */; });
329
330
  auto __clear_self_guard = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
@@ -334,30 +335,60 @@ public:
334
335
  }
335
336
 
336
337
  // iterators
337
- _LIBCPP_HIDE_FROM_ABI iterator begin() noexcept { return iterator(std::as_const(__keys_).begin()); }
338
- _LIBCPP_HIDE_FROM_ABI const_iterator begin() const noexcept { return const_iterator(__keys_.begin()); }
339
- _LIBCPP_HIDE_FROM_ABI iterator end() noexcept { return iterator(std::as_const(__keys_).end()); }
340
- _LIBCPP_HIDE_FROM_ABI const_iterator end() const noexcept { return const_iterator(__keys_.end()); }
338
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator begin() noexcept {
339
+ return iterator(std::as_const(__keys_).begin());
340
+ }
341
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator begin() const noexcept {
342
+ return const_iterator(__keys_.begin());
343
+ }
344
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator end() noexcept {
345
+ return iterator(std::as_const(__keys_).end());
346
+ }
347
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator end() const noexcept {
348
+ return const_iterator(__keys_.end());
349
+ }
341
350
 
342
- _LIBCPP_HIDE_FROM_ABI reverse_iterator rbegin() noexcept { return reverse_iterator(end()); }
343
- _LIBCPP_HIDE_FROM_ABI const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(end()); }
344
- _LIBCPP_HIDE_FROM_ABI reverse_iterator rend() noexcept { return reverse_iterator(begin()); }
345
- _LIBCPP_HIDE_FROM_ABI const_reverse_iterator rend() const noexcept { return const_reverse_iterator(begin()); }
351
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rbegin() noexcept {
352
+ return reverse_iterator(end());
353
+ }
354
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rbegin() const noexcept {
355
+ return const_reverse_iterator(end());
356
+ }
357
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rend() noexcept {
358
+ return reverse_iterator(begin());
359
+ }
360
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rend() const noexcept {
361
+ return const_reverse_iterator(begin());
362
+ }
346
363
 
347
- _LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const noexcept { return begin(); }
348
- _LIBCPP_HIDE_FROM_ABI const_iterator cend() const noexcept { return end(); }
349
- _LIBCPP_HIDE_FROM_ABI const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); }
350
- _LIBCPP_HIDE_FROM_ABI const_reverse_iterator crend() const noexcept { return const_reverse_iterator(begin()); }
364
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator cbegin() const noexcept {
365
+ return begin();
366
+ }
367
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator cend() const noexcept {
368
+ return end();
369
+ }
370
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crbegin() const noexcept {
371
+ return const_reverse_iterator(end());
372
+ }
373
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crend() const noexcept {
374
+ return const_reverse_iterator(begin());
375
+ }
351
376
 
352
377
  // capacity
353
- [[nodiscard]] _LIBCPP_HIDE_FROM_ABI bool empty() const noexcept { return __keys_.empty(); }
354
- _LIBCPP_HIDE_FROM_ABI size_type size() const noexcept { return __keys_.size(); }
355
- _LIBCPP_HIDE_FROM_ABI size_type max_size() const noexcept { return __keys_.max_size(); }
378
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool empty() const noexcept {
379
+ return __keys_.empty();
380
+ }
381
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type size() const noexcept {
382
+ return __keys_.size();
383
+ }
384
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type max_size() const noexcept {
385
+ return __keys_.max_size();
386
+ }
356
387
 
357
388
  // [flat.multiset.modifiers], modifiers
358
389
  template <class... _Args>
359
390
  requires is_constructible_v<value_type, _Args...>
360
- _LIBCPP_HIDE_FROM_ABI iterator emplace(_Args&&... __args) {
391
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator emplace(_Args&&... __args) {
361
392
  if constexpr (sizeof...(__args) == 1 && (is_same_v<remove_cvref_t<_Args>, _Key> && ...)) {
362
393
  return __emplace(std::forward<_Args>(__args)...);
363
394
  } else {
@@ -367,7 +398,7 @@ public:
367
398
 
368
399
  template <class... _Args>
369
400
  requires is_constructible_v<value_type, _Args...>
370
- _LIBCPP_HIDE_FROM_ABI iterator emplace_hint(const_iterator __hint, _Args&&... __args) {
401
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator emplace_hint(const_iterator __hint, _Args&&... __args) {
371
402
  if constexpr (sizeof...(__args) == 1 && (is_same_v<remove_cvref_t<_Args>, _Key> && ...)) {
372
403
  return __emplace_hint(std::move(__hint), std::forward<_Args>(__args)...);
373
404
  } else {
@@ -375,21 +406,23 @@ public:
375
406
  }
376
407
  }
377
408
 
378
- _LIBCPP_HIDE_FROM_ABI iterator insert(const value_type& __x) { return emplace(__x); }
409
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(const value_type& __x) { return emplace(__x); }
379
410
 
380
- _LIBCPP_HIDE_FROM_ABI iterator insert(value_type&& __x) { return emplace(std::move(__x)); }
411
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(value_type&& __x) {
412
+ return emplace(std::move(__x));
413
+ }
381
414
 
382
- _LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, const value_type& __x) {
415
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(const_iterator __hint, const value_type& __x) {
383
416
  return emplace_hint(__hint, __x);
384
417
  }
385
418
 
386
- _LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, value_type&& __x) {
419
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(const_iterator __hint, value_type&& __x) {
387
420
  return emplace_hint(__hint, std::move(__x));
388
421
  }
389
422
 
390
423
  template <class _InputIterator>
391
424
  requires __has_input_iterator_category<_InputIterator>::value
392
- _LIBCPP_HIDE_FROM_ABI void insert(_InputIterator __first, _InputIterator __last) {
425
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert(_InputIterator __first, _InputIterator __last) {
393
426
  if constexpr (sized_sentinel_for<_InputIterator, _InputIterator>) {
394
427
  __reserve(__last - __first);
395
428
  }
@@ -398,7 +431,8 @@ public:
398
431
 
399
432
  template <class _InputIterator>
400
433
  requires __has_input_iterator_category<_InputIterator>::value
401
- _LIBCPP_HIDE_FROM_ABI void insert(sorted_equivalent_t, _InputIterator __first, _InputIterator __last) {
434
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
435
+ insert(sorted_equivalent_t, _InputIterator __first, _InputIterator __last) {
402
436
  if constexpr (sized_sentinel_for<_InputIterator, _InputIterator>) {
403
437
  __reserve(__last - __first);
404
438
  }
@@ -407,7 +441,7 @@ public:
407
441
  }
408
442
 
409
443
  template <_ContainerCompatibleRange<value_type> _Range>
410
- _LIBCPP_HIDE_FROM_ABI void insert_range(_Range&& __range) {
444
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert_range(_Range&& __range) {
411
445
  if constexpr (ranges::sized_range<_Range>) {
412
446
  __reserve(ranges::size(__range));
413
447
  }
@@ -415,26 +449,38 @@ public:
415
449
  __append_sort_merge</*WasSorted = */ false>(std::forward<_Range>(__range));
416
450
  }
417
451
 
418
- _LIBCPP_HIDE_FROM_ABI void insert(initializer_list<value_type> __il) { insert(__il.begin(), __il.end()); }
452
+ template <_ContainerCompatibleRange<value_type> _Range>
453
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert_range(sorted_equivalent_t, _Range&& __range) {
454
+ if constexpr (ranges::sized_range<_Range>) {
455
+ __reserve(ranges::size(__range));
456
+ }
419
457
 
420
- _LIBCPP_HIDE_FROM_ABI void insert(sorted_equivalent_t, initializer_list<value_type> __il) {
458
+ __append_sort_merge</*WasSorted = */ true>(std::forward<_Range>(__range));
459
+ }
460
+
461
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert(initializer_list<value_type> __il) {
462
+ insert(__il.begin(), __il.end());
463
+ }
464
+
465
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
466
+ insert(sorted_equivalent_t, initializer_list<value_type> __il) {
421
467
  insert(sorted_equivalent, __il.begin(), __il.end());
422
468
  }
423
469
 
424
- _LIBCPP_HIDE_FROM_ABI container_type extract() && {
470
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 container_type extract() && {
425
471
  auto __guard = std::__make_scope_guard([&]() noexcept { clear() /* noexcept */; });
426
472
  auto __ret = std::move(__keys_);
427
473
  return __ret;
428
474
  }
429
475
 
430
- _LIBCPP_HIDE_FROM_ABI void replace(container_type&& __keys) {
476
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void replace(container_type&& __keys) {
431
477
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(ranges::is_sorted(__keys, __compare_), "Key container is not sorted");
432
478
  auto __guard = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
433
479
  __keys_ = std::move(__keys);
434
480
  __guard.__complete();
435
481
  }
436
482
 
437
- _LIBCPP_HIDE_FROM_ABI iterator erase(iterator __position) {
483
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase(iterator __position) {
438
484
  auto __on_failure = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
439
485
  auto __key_iter = __keys_.erase(__position.__base());
440
486
  __on_failure.__complete();
@@ -444,7 +490,7 @@ public:
444
490
  // The following overload is the same as the iterator overload
445
491
  // iterator erase(const_iterator __position);
446
492
 
447
- _LIBCPP_HIDE_FROM_ABI size_type erase(const key_type& __x) {
493
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type erase(const key_type& __x) {
448
494
  auto [__first, __last] = equal_range(__x);
449
495
  auto __res = __last - __first;
450
496
  erase(__first, __last);
@@ -454,149 +500,170 @@ public:
454
500
  template <class _Kp>
455
501
  requires(__is_transparent_v<_Compare> && !is_convertible_v<_Kp &&, iterator> &&
456
502
  !is_convertible_v<_Kp &&, const_iterator>)
457
- _LIBCPP_HIDE_FROM_ABI size_type erase(_Kp&& __x) {
503
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type erase(_Kp&& __x) {
458
504
  auto [__first, __last] = equal_range(__x);
459
505
  auto __res = __last - __first;
460
506
  erase(__first, __last);
461
507
  return __res;
462
508
  }
463
509
 
464
- _LIBCPP_HIDE_FROM_ABI iterator erase(const_iterator __first, const_iterator __last) {
510
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase(const_iterator __first, const_iterator __last) {
465
511
  auto __on_failure = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
466
512
  auto __key_it = __keys_.erase(__first.__base(), __last.__base());
467
513
  __on_failure.__complete();
468
514
  return iterator(std::move(__key_it));
469
515
  }
470
516
 
471
- _LIBCPP_HIDE_FROM_ABI void swap(flat_multiset& __y) noexcept {
472
- // warning: The spec has unconditional noexcept, which means that
473
- // if any of the following functions throw an exception,
474
- // std::terminate will be called
475
- // This is discussed in P3567, which hasn't been voted on yet.
517
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
518
+ swap(flat_multiset& __y) noexcept(is_nothrow_swappable_v<container_type> && is_nothrow_swappable_v<key_compare>) {
519
+ auto __on_failure = std::__make_exception_guard([&]() noexcept {
520
+ clear() /* noexcept */;
521
+ __y.clear() /* noexcept */;
522
+ });
476
523
  ranges::swap(__compare_, __y.__compare_);
477
524
  ranges::swap(__keys_, __y.__keys_);
525
+ __on_failure.__complete();
478
526
  }
479
527
 
480
- _LIBCPP_HIDE_FROM_ABI void clear() noexcept { __keys_.clear(); }
528
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void clear() noexcept { __keys_.clear(); }
481
529
 
482
530
  // observers
483
- _LIBCPP_HIDE_FROM_ABI key_compare key_comp() const { return __compare_; }
484
- _LIBCPP_HIDE_FROM_ABI value_compare value_comp() const { return __compare_; }
531
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 key_compare key_comp() const { return __compare_; }
532
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 value_compare value_comp() const {
533
+ return __compare_;
534
+ }
485
535
 
486
536
  // map operations
487
- _LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __x) { return __find_impl(*this, __x); }
537
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find(const key_type& __x) {
538
+ return __find_impl(*this, __x);
539
+ }
488
540
 
489
- _LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __x) const { return __find_impl(*this, __x); }
541
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find(const key_type& __x) const {
542
+ return __find_impl(*this, __x);
543
+ }
490
544
 
491
545
  template <class _Kp>
492
546
  requires __is_transparent_v<_Compare>
493
- _LIBCPP_HIDE_FROM_ABI iterator find(const _Kp& __x) {
547
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find(const _Kp& __x) {
494
548
  return __find_impl(*this, __x);
495
549
  }
496
550
 
497
551
  template <class _Kp>
498
552
  requires __is_transparent_v<_Compare>
499
- _LIBCPP_HIDE_FROM_ABI const_iterator find(const _Kp& __x) const {
553
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find(const _Kp& __x) const {
500
554
  return __find_impl(*this, __x);
501
555
  }
502
556
 
503
- _LIBCPP_HIDE_FROM_ABI size_type count(const key_type& __x) const {
557
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type count(const key_type& __x) const {
504
558
  auto [__first, __last] = equal_range(__x);
505
559
  return __last - __first;
506
560
  }
507
561
 
508
562
  template <class _Kp>
509
563
  requires __is_transparent_v<_Compare>
510
- _LIBCPP_HIDE_FROM_ABI size_type count(const _Kp& __x) const {
564
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type count(const _Kp& __x) const {
511
565
  auto [__first, __last] = equal_range(__x);
512
566
  return __last - __first;
513
567
  }
514
568
 
515
- _LIBCPP_HIDE_FROM_ABI bool contains(const key_type& __x) const { return find(__x) != end(); }
569
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains(const key_type& __x) const {
570
+ return find(__x) != end();
571
+ }
516
572
 
517
573
  template <class _Kp>
518
574
  requires __is_transparent_v<_Compare>
519
- _LIBCPP_HIDE_FROM_ABI bool contains(const _Kp& __x) const {
575
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains(const _Kp& __x) const {
520
576
  return find(__x) != end();
521
577
  }
522
578
 
523
- _LIBCPP_HIDE_FROM_ABI iterator lower_bound(const key_type& __x) {
579
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator lower_bound(const key_type& __x) {
524
580
  const auto& __keys = __keys_;
525
581
  return iterator(std::lower_bound(__keys.begin(), __keys.end(), __x, __compare_));
526
582
  }
527
583
 
528
- _LIBCPP_HIDE_FROM_ABI const_iterator lower_bound(const key_type& __x) const {
584
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator
585
+ lower_bound(const key_type& __x) const {
529
586
  return const_iterator(std::lower_bound(__keys_.begin(), __keys_.end(), __x, __compare_));
530
587
  }
531
588
 
532
589
  template <class _Kp>
533
590
  requires __is_transparent_v<_Compare>
534
- _LIBCPP_HIDE_FROM_ABI iterator lower_bound(const _Kp& __x) {
591
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator lower_bound(const _Kp& __x) {
535
592
  const auto& __keys = __keys_;
536
593
  return iterator(std::lower_bound(__keys.begin(), __keys.end(), __x, __compare_));
537
594
  }
538
595
 
539
596
  template <class _Kp>
540
597
  requires __is_transparent_v<_Compare>
541
- _LIBCPP_HIDE_FROM_ABI const_iterator lower_bound(const _Kp& __x) const {
598
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator lower_bound(const _Kp& __x) const {
542
599
  return const_iterator(std::lower_bound(__keys_.begin(), __keys_.end(), __x, __compare_));
543
600
  }
544
601
 
545
- _LIBCPP_HIDE_FROM_ABI iterator upper_bound(const key_type& __x) {
602
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator upper_bound(const key_type& __x) {
546
603
  const auto& __keys = __keys_;
547
604
  return iterator(std::upper_bound(__keys.begin(), __keys.end(), __x, __compare_));
548
605
  }
549
606
 
550
- _LIBCPP_HIDE_FROM_ABI const_iterator upper_bound(const key_type& __x) const {
607
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator
608
+ upper_bound(const key_type& __x) const {
551
609
  return const_iterator(std::upper_bound(__keys_.begin(), __keys_.end(), __x, __compare_));
552
610
  }
553
611
 
554
612
  template <class _Kp>
555
613
  requires __is_transparent_v<_Compare>
556
- _LIBCPP_HIDE_FROM_ABI iterator upper_bound(const _Kp& __x) {
614
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator upper_bound(const _Kp& __x) {
557
615
  const auto& __keys = __keys_;
558
616
  return iterator(std::upper_bound(__keys.begin(), __keys.end(), __x, __compare_));
559
617
  }
560
618
 
561
619
  template <class _Kp>
562
620
  requires __is_transparent_v<_Compare>
563
- _LIBCPP_HIDE_FROM_ABI const_iterator upper_bound(const _Kp& __x) const {
621
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator upper_bound(const _Kp& __x) const {
564
622
  return const_iterator(std::upper_bound(__keys_.begin(), __keys_.end(), __x, __compare_));
565
623
  }
566
624
 
567
- _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const key_type& __x) {
625
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<iterator, iterator>
626
+ equal_range(const key_type& __x) {
568
627
  return __equal_range_impl(*this, __x);
569
628
  }
570
629
 
571
- _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const key_type& __x) const {
630
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
631
+ equal_range(const key_type& __x) const {
572
632
  return __equal_range_impl(*this, __x);
573
633
  }
574
634
 
575
635
  template <class _Kp>
576
636
  requires __is_transparent_v<_Compare>
577
- _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const _Kp& __x) {
637
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<iterator, iterator>
638
+ equal_range(const _Kp& __x) {
578
639
  return __equal_range_impl(*this, __x);
579
640
  }
580
641
  template <class _Kp>
581
642
  requires __is_transparent_v<_Compare>
582
- _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const _Kp& __x) const {
643
+ [[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
644
+ equal_range(const _Kp& __x) const {
583
645
  return __equal_range_impl(*this, __x);
584
646
  }
585
647
 
586
- friend _LIBCPP_HIDE_FROM_ABI bool operator==(const flat_multiset& __x, const flat_multiset& __y) {
648
+ friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool
649
+ operator==(const flat_multiset& __x, const flat_multiset& __y) {
587
650
  return ranges::equal(__x, __y);
588
651
  }
589
652
 
590
- friend _LIBCPP_HIDE_FROM_ABI auto operator<=>(const flat_multiset& __x, const flat_multiset& __y) {
653
+ friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 auto
654
+ operator<=>(const flat_multiset& __x, const flat_multiset& __y) {
591
655
  return std::lexicographical_compare_three_way(
592
656
  __x.begin(), __x.end(), __y.begin(), __y.end(), std::__synth_three_way);
593
657
  }
594
658
 
595
- friend _LIBCPP_HIDE_FROM_ABI void swap(flat_multiset& __x, flat_multiset& __y) noexcept { __x.swap(__y); }
659
+ friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
660
+ swap(flat_multiset& __x, flat_multiset& __y) noexcept(noexcept(__x.swap(__y))) {
661
+ __x.swap(__y);
662
+ }
596
663
 
597
664
  private:
598
665
  template <bool _WasSorted, class... _Args>
599
- _LIBCPP_HIDE_FROM_ABI void __append_sort_merge(_Args&&... __args) {
666
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __append_sort_merge(_Args&&... __args) {
600
667
  auto __on_failure = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
601
668
  size_type __old_size = size();
602
669
  __flat_set_utils::__append(*this, std::forward<_Args>(__args)...);
@@ -604,20 +671,20 @@ private:
604
671
  ranges::sort(__keys_.begin() + __old_size, __keys_.end(), __compare_);
605
672
  } else {
606
673
  _LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(
607
- ranges::is_sorted(__keys_ | ranges::views::drop(__old_size)), "Key container is not sorted");
674
+ ranges::is_sorted(__keys_ | ranges::views::drop(__old_size), __compare_), "Key container is not sorted");
608
675
  }
609
676
  ranges::inplace_merge(__keys_.begin(), __keys_.begin() + __old_size, __keys_.end(), __compare_);
610
677
  __on_failure.__complete();
611
678
  }
612
679
 
613
680
  template <class _Kp>
614
- _LIBCPP_HIDE_FROM_ABI iterator __emplace(_Kp&& __key) {
681
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator __emplace(_Kp&& __key) {
615
682
  auto __it = upper_bound(__key);
616
683
  return __flat_set_utils::__emplace_exact_pos(*this, __it, std::forward<_Kp>(__key));
617
684
  }
618
685
 
619
686
  template <class _Kp>
620
- _LIBCPP_HIDE_FROM_ABI iterator __emplace_hint(const_iterator __hint, _Kp&& __key) {
687
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator __emplace_hint(const_iterator __hint, _Kp&& __key) {
621
688
  auto __prev_larger = __hint != cbegin() && __compare_(__key, *std::prev(__hint));
622
689
  auto __next_smaller = __hint != cend() && __compare_(*__hint, __key);
623
690
 
@@ -649,7 +716,7 @@ private:
649
716
  }
650
717
 
651
718
  template <class _Self, class _Kp>
652
- _LIBCPP_HIDE_FROM_ABI static auto __find_impl(_Self&& __self, const _Kp& __key) {
719
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 static auto __find_impl(_Self&& __self, const _Kp& __key) {
653
720
  auto __it = __self.lower_bound(__key);
654
721
  auto __last = __self.end();
655
722
  if (__it == __last || __self.__compare_(__key, *__it)) {
@@ -659,29 +726,30 @@ private:
659
726
  }
660
727
 
661
728
  template <class _Self, class _Kp>
662
- _LIBCPP_HIDE_FROM_ABI static auto __equal_range_impl(_Self&& __self, const _Kp& __key) {
729
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 static auto __equal_range_impl(_Self&& __self, const _Kp& __key) {
663
730
  using __iter = _If<is_const_v<__libcpp_remove_reference_t<_Self>>, const_iterator, iterator>;
664
731
  auto [__key_first, __key_last] =
665
732
  std::equal_range(__self.__keys_.begin(), __self.__keys_.end(), __key, __self.__compare_);
666
733
  return std::make_pair(__iter(__key_first), __iter(__key_last));
667
734
  }
668
735
 
669
- _LIBCPP_HIDE_FROM_ABI void __reserve(size_t __size) {
736
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __reserve(size_t __size) {
670
737
  if constexpr (__container_traits<_KeyContainer>::__reservable) {
671
738
  __keys_.reserve(__size);
672
739
  }
673
740
  }
674
741
 
675
742
  template <class _Key2, class _Compare2, class _KeyContainer2, class _Predicate>
676
- friend typename flat_multiset<_Key2, _Compare2, _KeyContainer2>::size_type
743
+ friend typename flat_multiset<_Key2, _Compare2, _KeyContainer2>::size_type _LIBCPP_CONSTEXPR_SINCE_CXX26
677
744
  erase_if(flat_multiset<_Key2, _Compare2, _KeyContainer2>&, _Predicate);
678
745
 
679
746
  _KeyContainer __keys_;
680
747
  _LIBCPP_NO_UNIQUE_ADDRESS key_compare __compare_;
681
748
 
682
749
  struct __key_equiv {
683
- _LIBCPP_HIDE_FROM_ABI __key_equiv(key_compare __c) : __comp_(__c) {}
684
- _LIBCPP_HIDE_FROM_ABI bool operator()(const_reference __x, const_reference __y) const {
750
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_equiv(key_compare __c) : __comp_(__c) {}
751
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool
752
+ operator()(const_reference __x, const_reference __y) const {
685
753
  return !__comp_(std::get<0>(__x), std::get<0>(__y)) && !__comp_(std::get<0>(__y), std::get<0>(__x));
686
754
  }
687
755
  key_compare __comp_;
@@ -689,7 +757,7 @@ private:
689
757
  };
690
758
 
691
759
  template <class _KeyContainer, class _Compare = less<typename _KeyContainer::value_type>>
692
- requires(!__is_allocator<_Compare>::value && !__is_allocator<_KeyContainer>::value &&
760
+ requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> &&
693
761
  is_invocable_v<const _Compare&,
694
762
  const typename _KeyContainer::value_type&,
695
763
  const typename _KeyContainer::value_type&>)
@@ -697,12 +765,12 @@ flat_multiset(_KeyContainer, _Compare = _Compare())
697
765
  -> flat_multiset<typename _KeyContainer::value_type, _Compare, _KeyContainer>;
698
766
 
699
767
  template <class _KeyContainer, class _Allocator>
700
- requires(uses_allocator_v<_KeyContainer, _Allocator> && !__is_allocator<_KeyContainer>::value)
768
+ requires(uses_allocator_v<_KeyContainer, _Allocator> && !__is_allocator_v<_KeyContainer>)
701
769
  flat_multiset(_KeyContainer, _Allocator)
702
770
  -> flat_multiset<typename _KeyContainer::value_type, less<typename _KeyContainer::value_type>, _KeyContainer>;
703
771
 
704
772
  template <class _KeyContainer, class _Compare, class _Allocator>
705
- requires(!__is_allocator<_Compare>::value && !__is_allocator<_KeyContainer>::value &&
773
+ requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> &&
706
774
  uses_allocator_v<_KeyContainer, _Allocator> &&
707
775
  is_invocable_v<const _Compare&,
708
776
  const typename _KeyContainer::value_type&,
@@ -711,7 +779,7 @@ flat_multiset(_KeyContainer, _Compare, _Allocator)
711
779
  -> flat_multiset<typename _KeyContainer::value_type, _Compare, _KeyContainer>;
712
780
 
713
781
  template <class _KeyContainer, class _Compare = less<typename _KeyContainer::value_type>>
714
- requires(!__is_allocator<_Compare>::value && !__is_allocator<_KeyContainer>::value &&
782
+ requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> &&
715
783
  is_invocable_v<const _Compare&,
716
784
  const typename _KeyContainer::value_type&,
717
785
  const typename _KeyContainer::value_type&>)
@@ -719,12 +787,12 @@ flat_multiset(sorted_equivalent_t, _KeyContainer, _Compare = _Compare())
719
787
  -> flat_multiset<typename _KeyContainer::value_type, _Compare, _KeyContainer>;
720
788
 
721
789
  template <class _KeyContainer, class _Allocator>
722
- requires(uses_allocator_v<_KeyContainer, _Allocator> && !__is_allocator<_KeyContainer>::value)
790
+ requires(uses_allocator_v<_KeyContainer, _Allocator> && !__is_allocator_v<_KeyContainer>)
723
791
  flat_multiset(sorted_equivalent_t, _KeyContainer, _Allocator)
724
792
  -> flat_multiset<typename _KeyContainer::value_type, less<typename _KeyContainer::value_type>, _KeyContainer>;
725
793
 
726
794
  template <class _KeyContainer, class _Compare, class _Allocator>
727
- requires(!__is_allocator<_Compare>::value && !__is_allocator<_KeyContainer>::value &&
795
+ requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> &&
728
796
  uses_allocator_v<_KeyContainer, _Allocator> &&
729
797
  is_invocable_v<const _Compare&,
730
798
  const typename _KeyContainer::value_type&,
@@ -732,37 +800,37 @@ template <class _KeyContainer, class _Compare, class _Allocator>
732
800
  flat_multiset(sorted_equivalent_t, _KeyContainer, _Compare, _Allocator)
733
801
  -> flat_multiset<typename _KeyContainer::value_type, _Compare, _KeyContainer>;
734
802
 
735
- template <class _InputIterator, class _Compare = less<__iter_value_type<_InputIterator>>>
736
- requires(__has_input_iterator_category<_InputIterator>::value && !__is_allocator<_Compare>::value)
803
+ template <class _InputIterator, class _Compare = less<__iterator_value_type<_InputIterator>>>
804
+ requires(__has_input_iterator_category<_InputIterator>::value && !__is_allocator_v<_Compare>)
737
805
  flat_multiset(_InputIterator, _InputIterator, _Compare = _Compare())
738
- -> flat_multiset<__iter_value_type<_InputIterator>, _Compare>;
806
+ -> flat_multiset<__iterator_value_type<_InputIterator>, _Compare>;
739
807
 
740
- template <class _InputIterator, class _Compare = less<__iter_value_type<_InputIterator>>>
741
- requires(__has_input_iterator_category<_InputIterator>::value && !__is_allocator<_Compare>::value)
808
+ template <class _InputIterator, class _Compare = less<__iterator_value_type<_InputIterator>>>
809
+ requires(__has_input_iterator_category<_InputIterator>::value && !__is_allocator_v<_Compare>)
742
810
  flat_multiset(sorted_equivalent_t, _InputIterator, _InputIterator, _Compare = _Compare())
743
- -> flat_multiset<__iter_value_type<_InputIterator>, _Compare>;
811
+ -> flat_multiset<__iterator_value_type<_InputIterator>, _Compare>;
744
812
 
745
813
  template <ranges::input_range _Range,
746
814
  class _Compare = less<ranges::range_value_t<_Range>>,
747
815
  class _Allocator = allocator<ranges::range_value_t<_Range>>,
748
- class = __enable_if_t<!__is_allocator<_Compare>::value && __is_allocator<_Allocator>::value>>
816
+ class = __enable_if_t<!__is_allocator_v<_Compare> && __is_allocator_v<_Allocator>>>
749
817
  flat_multiset(from_range_t, _Range&&, _Compare = _Compare(), _Allocator = _Allocator()) -> flat_multiset<
750
818
  ranges::range_value_t<_Range>,
751
819
  _Compare,
752
820
  vector<ranges::range_value_t<_Range>, __allocator_traits_rebind_t<_Allocator, ranges::range_value_t<_Range>>>>;
753
821
 
754
- template <ranges::input_range _Range, class _Allocator, class = __enable_if_t<__is_allocator<_Allocator>::value>>
822
+ template <ranges::input_range _Range, class _Allocator, class = __enable_if_t<__is_allocator_v<_Allocator>>>
755
823
  flat_multiset(from_range_t, _Range&&, _Allocator) -> flat_multiset<
756
824
  ranges::range_value_t<_Range>,
757
825
  less<ranges::range_value_t<_Range>>,
758
826
  vector<ranges::range_value_t<_Range>, __allocator_traits_rebind_t<_Allocator, ranges::range_value_t<_Range>>>>;
759
827
 
760
828
  template <class _Key, class _Compare = less<_Key>>
761
- requires(!__is_allocator<_Compare>::value)
829
+ requires(!__is_allocator_v<_Compare>)
762
830
  flat_multiset(initializer_list<_Key>, _Compare = _Compare()) -> flat_multiset<_Key, _Compare>;
763
831
 
764
832
  template <class _Key, class _Compare = less<_Key>>
765
- requires(!__is_allocator<_Compare>::value)
833
+ requires(!__is_allocator_v<_Compare>)
766
834
  flat_multiset(sorted_equivalent_t, initializer_list<_Key>, _Compare = _Compare()) -> flat_multiset<_Key, _Compare>;
767
835
 
768
836
  template <class _Key, class _Compare, class _KeyContainer, class _Allocator>
@@ -770,7 +838,7 @@ struct uses_allocator<flat_multiset<_Key, _Compare, _KeyContainer>, _Allocator>
770
838
  : bool_constant<uses_allocator_v<_KeyContainer, _Allocator> > {};
771
839
 
772
840
  template <class _Key, class _Compare, class _KeyContainer, class _Predicate>
773
- _LIBCPP_HIDE_FROM_ABI typename flat_multiset<_Key, _Compare, _KeyContainer>::size_type
841
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 typename flat_multiset<_Key, _Compare, _KeyContainer>::size_type
774
842
  erase_if(flat_multiset<_Key, _Compare, _KeyContainer>& __flat_multiset, _Predicate __pred) {
775
843
  auto __guard = std::__make_exception_guard([&] { __flat_multiset.clear(); });
776
844
  auto __it =