@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.
- package/c/fcntl.zig +6 -1
- package/c/inttypes.zig +0 -10
- package/c/math.zig +52 -112
- package/c/pthread.zig +57 -0
- package/c/search.zig +1 -27
- package/c/stdlib/drand48.zig +0 -57
- package/c/stdlib.zig +31 -121
- package/c/string.zig +20 -7
- package/c/strings.zig +0 -38
- package/c/unistd.zig +27 -26
- package/c/wchar.zig +10 -0
- package/c.zig +2 -2
- package/compiler/aro/aro/CodeGen.zig +7 -8
- package/compiler/aro/aro/Compilation.zig +17 -17
- package/compiler/aro/aro/Driver.zig +14 -13
- package/compiler/aro/aro/Parser.zig +20 -15
- package/compiler/aro/aro/Pragma.zig +3 -2
- package/compiler/aro/aro/Preprocessor.zig +9 -6
- package/compiler/aro/aro/pragmas/message.zig +3 -2
- package/compiler/aro/aro/text_literal.zig +3 -2
- package/compiler/aro/assembly_backend/x86_64.zig +4 -4
- package/compiler/build_runner.zig +2 -4
- package/compiler/reduce/Walk.zig +8 -13
- package/compiler/resinator/compile.zig +1 -1
- package/compiler/resinator/cvtres.zig +4 -4
- package/compiler/resinator/errors.zig +7 -7
- package/compiler/resinator/ico.zig +4 -4
- package/compiler/resinator/parse.zig +2 -2
- package/compiler/resinator/res.zig +1 -1
- package/compiler/std-docs.zig +1 -1
- package/compiler/test_runner.zig +1 -1
- package/compiler/translate-c/MacroTranslator.zig +1 -1
- package/compiler/translate-c/Translator.zig +6 -2
- package/compiler/translate-c/ast.zig +16 -23
- package/compiler/translate-c/main.zig +1 -1
- package/compiler_rt/addf3.zig +1 -1
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/atomics.zig +1 -1
- package/compiler_rt/comparef.zig +3 -3
- package/compiler_rt/cos.zig +1 -3
- package/compiler_rt/count0bits.zig +1 -1
- package/compiler_rt/divdf3.zig +2 -2
- package/compiler_rt/divsf3.zig +1 -1
- package/compiler_rt/divtf3.zig +1 -1
- package/compiler_rt/divxf3.zig +1 -1
- package/compiler_rt/exp.zig +0 -2
- package/compiler_rt/exp2.zig +0 -2
- package/compiler_rt/extendf.zig +5 -5
- package/compiler_rt/fabs.zig +1 -3
- package/compiler_rt/float_from_int.zig +3 -4
- package/compiler_rt/fma.zig +0 -2
- package/compiler_rt/fmax.zig +1 -3
- package/compiler_rt/fmin.zig +1 -3
- package/compiler_rt/fmod.zig +2 -4
- package/compiler_rt/limb64.zig +3 -2
- package/compiler_rt/log.zig +0 -2
- package/compiler_rt/log10.zig +0 -2
- package/compiler_rt/log2.zig +0 -2
- package/compiler_rt/mulf3.zig +2 -2
- package/compiler_rt/rem_pio2l.zig +1 -1
- package/compiler_rt/round.zig +0 -2
- package/compiler_rt/sin.zig +1 -3
- package/compiler_rt/sincos.zig +1 -3
- package/compiler_rt/sqrt.zig +0 -2
- package/compiler_rt/ssp.zig +2 -2
- package/compiler_rt/tan.zig +1 -3
- package/compiler_rt/trunc.zig +0 -2
- package/compiler_rt/truncf.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +5 -26
- package/docs/wasm/Walk.zig +1 -3
- package/docs/wasm/html_render.zig +1 -2
- package/docs/wasm/markdown/Parser.zig +16 -20
- package/fuzzer.zig +2 -0
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
- package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
- package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
- package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
- package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
- package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
- package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
- package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
- package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
- package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
- package/libc/include/any-linux-any/linux/android/binder.h +1 -1
- package/libc/include/any-linux-any/linux/bpf.h +28 -0
- package/libc/include/any-linux-any/linux/btrfs.h +1 -0
- package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
- package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
- package/libc/include/any-linux-any/linux/dpll.h +1 -0
- package/libc/include/any-linux-any/linux/elf.h +2 -0
- package/libc/include/any-linux-any/linux/ethtool.h +21 -5
- package/libc/include/any-linux-any/linux/fs.h +1 -0
- package/libc/include/any-linux-any/linux/hyperv.h +1 -1
- package/libc/include/any-linux-any/linux/idxd.h +134 -134
- package/libc/include/any-linux-any/linux/if_alg.h +1 -1
- package/libc/include/any-linux-any/linux/if_link.h +1 -0
- package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
- package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
- package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
- package/libc/include/any-linux-any/linux/io_uring.h +33 -2
- package/libc/include/any-linux-any/linux/iommufd.h +39 -0
- package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
- package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
- package/libc/include/any-linux-any/linux/kvm.h +30 -6
- package/libc/include/any-linux-any/linux/landlock.h +22 -8
- package/libc/include/any-linux-any/linux/magic.h +1 -0
- package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
- package/libc/include/any-linux-any/linux/mount.h +11 -2
- package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
- package/libc/include/any-linux-any/linux/mshv.h +2 -0
- package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
- package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
- package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
- package/libc/include/any-linux-any/linux/nfs.h +1 -1
- package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
- package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
- package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
- package/libc/include/any-linux-any/linux/nl80211.h +104 -3
- package/libc/include/any-linux-any/linux/pci.h +7 -0
- package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
- package/libc/include/any-linux-any/linux/pcitest.h +1 -0
- package/libc/include/any-linux-any/linux/perf_event.h +24 -3
- package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
- package/libc/include/any-linux-any/linux/prctl.h +30 -0
- package/libc/include/any-linux-any/linux/rseq.h +62 -5
- package/libc/include/any-linux-any/linux/shm.h +0 -1
- package/libc/include/any-linux-any/linux/stddef.h +4 -0
- package/libc/include/any-linux-any/linux/sysctl.h +1 -2
- package/libc/include/any-linux-any/linux/taskstats.h +12 -1
- package/libc/include/any-linux-any/linux/tcp.h +23 -3
- package/libc/include/any-linux-any/linux/typelimits.h +8 -0
- package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
- package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
- package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
- package/libc/include/any-linux-any/linux/vduse.h +80 -5
- package/libc/include/any-linux-any/linux/version.h +3 -3
- package/libc/include/any-linux-any/linux/vfio.h +4 -0
- package/libc/include/any-linux-any/linux/videodev2.h +3 -0
- package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
- package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
- package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
- package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
- package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
- package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
- package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
- package/libc/include/arc-linux-any/asm/swab.h +0 -63
- package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
- package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
- package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
- package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
- package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/mips-linux-any/asm/errno.h +2 -0
- package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
- package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
- package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
- package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/sparc-linux-any/asm/errno.h +2 -0
- package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
- package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
- package/libc/include/x86-linux-any/asm/kvm.h +13 -8
- package/libc/include/x86-linux-any/asm/svm.h +16 -16
- package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
- package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
- package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
- package/libcxx/include/__algorithm/all_of.h +11 -5
- package/libcxx/include/__algorithm/comp.h +4 -0
- package/libcxx/include/__algorithm/copy.h +28 -147
- package/libcxx/include/__algorithm/copy_backward.h +9 -24
- package/libcxx/include/__algorithm/copy_n.h +50 -16
- package/libcxx/include/__algorithm/count.h +2 -2
- package/libcxx/include/__algorithm/equal.h +43 -55
- package/libcxx/include/__algorithm/fill.h +26 -8
- package/libcxx/include/__algorithm/fill_n.h +32 -46
- package/libcxx/include/__algorithm/find.h +96 -39
- package/libcxx/include/__algorithm/find_end.h +105 -0
- package/libcxx/include/__algorithm/for_each.h +18 -24
- package/libcxx/include/__algorithm/for_each_n.h +20 -47
- package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
- package/libcxx/include/__algorithm/for_each_segment.h +26 -0
- package/libcxx/include/__algorithm/generate.h +4 -2
- package/libcxx/include/__algorithm/generate_n.h +19 -6
- package/libcxx/include/__algorithm/is_permutation.h +4 -4
- package/libcxx/include/__algorithm/iterator_operations.h +3 -0
- package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
- package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
- package/libcxx/include/__algorithm/make_heap.h +16 -4
- package/libcxx/include/__algorithm/mismatch.h +2 -2
- package/libcxx/include/__algorithm/move.h +8 -19
- package/libcxx/include/__algorithm/move_backward.h +9 -24
- package/libcxx/include/__algorithm/none_of.h +4 -4
- package/libcxx/include/__algorithm/partial_sort.h +1 -1
- package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
- package/libcxx/include/__algorithm/pstl.h +9 -9
- package/libcxx/include/__algorithm/radix_sort.h +27 -25
- package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
- package/libcxx/include/__algorithm/ranges_equal.h +17 -26
- package/libcxx/include/__algorithm/ranges_fill.h +7 -6
- package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
- package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
- package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
- package/libcxx/include/__algorithm/rotate.h +27 -44
- package/libcxx/include/__algorithm/search_n.h +49 -37
- package/libcxx/include/__algorithm/sift_down.h +19 -18
- package/libcxx/include/__algorithm/simd_utils.h +33 -4
- package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
- package/libcxx/include/__algorithm/stable_sort.h +1 -1
- package/libcxx/include/__assertion_handler +31 -4
- package/libcxx/include/__atomic/atomic.h +36 -60
- package/libcxx/include/__atomic/atomic_flag.h +19 -37
- package/libcxx/include/__atomic/atomic_ref.h +29 -12
- package/libcxx/include/__atomic/atomic_sync.h +127 -55
- package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
- package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
- package/libcxx/include/__atomic/contention_t.h +27 -3
- package/libcxx/include/__atomic/floating_point_helper.h +55 -0
- package/libcxx/include/__bit/countl.h +1 -2
- package/libcxx/include/__bit/countr.h +1 -2
- package/libcxx/include/__bit/has_single_bit.h +1 -1
- package/libcxx/include/__bit/popcount.h +0 -1
- package/libcxx/include/__bit/rotate.h +15 -26
- package/libcxx/include/__bit_reference +207 -18
- package/libcxx/include/__charconv/from_chars_integral.h +1 -1
- package/libcxx/include/__charconv/from_chars_result.h +1 -1
- package/libcxx/include/__charconv/to_chars_integral.h +1 -0
- package/libcxx/include/__charconv/to_chars_result.h +1 -1
- package/libcxx/include/__charconv/traits.h +3 -24
- package/libcxx/include/__chrono/day.h +11 -0
- package/libcxx/include/__chrono/duration.h +58 -33
- package/libcxx/include/__chrono/file_clock.h +4 -2
- package/libcxx/include/__chrono/is_clock.h +72 -0
- package/libcxx/include/__chrono/leap_second.h +13 -0
- package/libcxx/include/__chrono/month.h +13 -0
- package/libcxx/include/__chrono/month_weekday.h +22 -0
- package/libcxx/include/__chrono/monthday.h +20 -0
- package/libcxx/include/__chrono/steady_clock.h +1 -1
- package/libcxx/include/__chrono/system_clock.h +3 -3
- package/libcxx/include/__chrono/time_point.h +37 -13
- package/libcxx/include/__chrono/weekday.h +25 -0
- package/libcxx/include/__chrono/year.h +11 -0
- package/libcxx/include/__chrono/year_month.h +13 -0
- package/libcxx/include/__chrono/year_month_day.h +23 -0
- package/libcxx/include/__chrono/year_month_weekday.h +26 -0
- package/libcxx/include/__chrono/zoned_time.h +16 -0
- package/libcxx/include/__compare/is_eq.h +6 -6
- package/libcxx/include/__compare/strong_order.h +12 -30
- package/libcxx/include/__compare/three_way_comparable.h +2 -2
- package/libcxx/include/__concepts/comparison_common_type.h +40 -0
- package/libcxx/include/__concepts/equality_comparable.h +2 -1
- package/libcxx/include/__condition_variable/condition_variable.h +1 -1
- package/libcxx/include/__config +63 -280
- package/libcxx/include/__configuration/abi.h +14 -24
- package/libcxx/include/__configuration/availability.h +65 -118
- package/libcxx/include/__configuration/compiler.h +6 -6
- package/libcxx/include/__configuration/experimental.h +38 -0
- package/libcxx/include/__configuration/hardening.h +215 -0
- package/libcxx/include/__configuration/language.h +3 -0
- package/libcxx/include/__configuration/platform.h +9 -16
- package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
- package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
- package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
- package/libcxx/include/__exception/exception.h +6 -4
- package/libcxx/include/__exception/exception_ptr.h +27 -5
- package/libcxx/include/__exception/nested_exception.h +2 -2
- package/libcxx/include/__exception/operations.h +5 -5
- package/libcxx/include/__expected/bad_expected_access.h +8 -6
- package/libcxx/include/__expected/expected.h +62 -64
- package/libcxx/include/__expected/unexpected.h +4 -4
- package/libcxx/include/__filesystem/copy_options.h +4 -4
- package/libcxx/include/__filesystem/directory_entry.h +37 -33
- package/libcxx/include/__filesystem/directory_iterator.h +9 -11
- package/libcxx/include/__filesystem/directory_options.h +7 -4
- package/libcxx/include/__filesystem/file_status.h +3 -3
- package/libcxx/include/__filesystem/filesystem_error.h +9 -10
- package/libcxx/include/__filesystem/operations.h +97 -66
- package/libcxx/include/__filesystem/path.h +68 -64
- package/libcxx/include/__filesystem/path_iterator.h +1 -3
- package/libcxx/include/__filesystem/perm_options.h +4 -4
- package/libcxx/include/__filesystem/perms.h +4 -4
- package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
- package/libcxx/include/__filesystem/space_info.h +1 -1
- package/libcxx/include/__filesystem/u8path.h +12 -14
- package/libcxx/include/__flat_map/flat_map.h +88 -71
- package/libcxx/include/__flat_map/flat_multimap.h +251 -172
- package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
- package/libcxx/include/__flat_map/utils.h +1 -0
- package/libcxx/include/__flat_set/flat_multiset.h +211 -143
- package/libcxx/include/__flat_set/flat_set.h +86 -68
- package/libcxx/include/__format/concepts.h +0 -14
- package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
- package/libcxx/include/__format/fmt_pair_like.h +42 -0
- package/libcxx/include/__format/format_arg.h +7 -10
- package/libcxx/include/__format/format_args.h +1 -1
- package/libcxx/include/__format/format_context.h +5 -5
- package/libcxx/include/__format/format_parse_context.h +2 -2
- package/libcxx/include/__format/formatter_output.h +30 -34
- package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
- package/libcxx/include/__format/range_default_formatter.h +2 -41
- package/libcxx/include/__format/range_format.h +71 -0
- package/libcxx/include/__format/range_formatter.h +1 -0
- package/libcxx/include/__format/width_estimation_table.h +4 -2
- package/libcxx/include/__functional/bind.h +10 -15
- package/libcxx/include/__functional/bind_back.h +1 -1
- package/libcxx/include/__functional/bind_front.h +1 -1
- package/libcxx/include/__functional/function.h +57 -75
- package/libcxx/include/__functional/hash.h +1 -10
- package/libcxx/include/__functional/identity.h +1 -1
- package/libcxx/include/__functional/is_transparent.h +8 -0
- package/libcxx/include/__functional/mem_fn.h +2 -1
- package/libcxx/include/__functional/operations.h +18 -0
- package/libcxx/include/__functional/ranges_operations.h +7 -0
- package/libcxx/include/__functional/reference_wrapper.h +7 -5
- package/libcxx/include/__functional/weak_result_type.h +14 -28
- package/libcxx/include/__fwd/ios.h +1 -1
- package/libcxx/include/__fwd/tuple.h +14 -0
- package/libcxx/include/__hash_table +371 -357
- package/libcxx/include/__ios/fpos.h +4 -4
- package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/bounded_iter.h +7 -8
- package/libcxx/include/__iterator/concepts.h +6 -9
- package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
- package/libcxx/include/__iterator/distance.h +40 -18
- package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/insert_iterator.h +1 -7
- package/libcxx/include/__iterator/istream_iterator.h +6 -7
- package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
- package/libcxx/include/__iterator/iter_move.h +1 -1
- package/libcxx/include/__iterator/iterator.h +13 -0
- package/libcxx/include/__iterator/iterator_traits.h +13 -14
- package/libcxx/include/__iterator/ostream_iterator.h +1 -7
- package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
- package/libcxx/include/__iterator/reverse_iterator.h +8 -13
- package/libcxx/include/__iterator/segmented_iterator.h +3 -8
- package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
- package/libcxx/include/__iterator/wrap_iter.h +8 -6
- package/libcxx/include/__locale +3 -10
- package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
- package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
- package/libcxx/include/__locale_dir/messages.h +1 -1
- package/libcxx/include/__locale_dir/money.h +2 -2
- package/libcxx/include/__locale_dir/num.h +190 -243
- package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
- package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
- package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
- package/libcxx/include/__locale_dir/support/linux.h +0 -37
- package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
- package/libcxx/include/__locale_dir/support/newlib.h +243 -0
- package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
- package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
- package/libcxx/include/__locale_dir/support/windows.h +0 -29
- package/libcxx/include/__locale_dir/time.h +3 -7
- package/libcxx/include/__math/hypot.h +1 -1
- package/libcxx/include/__math/logarithms.h +1 -1
- package/libcxx/include/__math/traits.h +80 -11
- package/libcxx/include/__mdspan/extents.h +7 -4
- package/libcxx/include/__mdspan/layout_stride.h +4 -5
- package/libcxx/include/__mdspan/mdspan.h +29 -23
- package/libcxx/include/__memory/addressof.h +7 -5
- package/libcxx/include/__memory/align.h +18 -1
- package/libcxx/include/__memory/allocate_at_least.h +15 -10
- package/libcxx/include/__memory/allocator.h +14 -26
- package/libcxx/include/__memory/allocator_traits.h +6 -4
- package/libcxx/include/__memory/compressed_pair.h +15 -9
- package/libcxx/include/__memory/construct_at.h +12 -23
- package/libcxx/include/__memory/inout_ptr.h +1 -1
- package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
- package/libcxx/include/__memory/out_ptr.h +1 -1
- package/libcxx/include/__memory/pointer_traits.h +1 -1
- package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
- package/libcxx/include/__memory/shared_count.h +9 -30
- package/libcxx/include/__memory/shared_ptr.h +100 -145
- package/libcxx/include/__memory/temp_value.h +1 -2
- package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
- package/libcxx/include/__memory/unique_ptr.h +14 -16
- package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
- package/libcxx/include/__memory_resource/memory_resource.h +4 -2
- package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
- package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
- package/libcxx/include/__memory_resource/pool_options.h +1 -1
- package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
- package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
- package/libcxx/include/__mutex/mutex.h +2 -2
- package/libcxx/include/__mutex/once_flag.h +14 -11
- package/libcxx/include/__mutex/tag_types.h +3 -3
- package/libcxx/include/__mutex/unique_lock.h +8 -7
- package/libcxx/include/__new/align_val_t.h +6 -0
- package/libcxx/include/__new/allocate.h +1 -2
- package/libcxx/include/__new/exceptions.h +8 -2
- package/libcxx/include/__new/global_new_delete.h +4 -11
- package/libcxx/include/__new/interference_size.h +0 -4
- package/libcxx/include/__new/launder.h +3 -5
- package/libcxx/include/__new/nothrow_t.h +1 -1
- package/libcxx/include/__numeric/gcd_lcm.h +24 -34
- package/libcxx/include/__numeric/midpoint.h +9 -14
- package/libcxx/include/__numeric/pstl.h +2 -2
- package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
- package/libcxx/include/__ostream/basic_ostream.h +8 -8
- package/libcxx/include/__pstl/backends/default.h +14 -14
- package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
- package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
- package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
- package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
- package/libcxx/include/__random/binomial_distribution.h +10 -4
- package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
- package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
- package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
- package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
- package/libcxx/include/__ranges/adjacent_view.h +419 -0
- package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
- package/libcxx/include/__ranges/chunk_by_view.h +6 -6
- package/libcxx/include/__ranges/common_view.h +7 -7
- package/libcxx/include/__ranges/drop_view.h +8 -8
- package/libcxx/include/__ranges/drop_while_view.h +5 -5
- package/libcxx/include/__ranges/elements_of.h +49 -0
- package/libcxx/include/__ranges/empty_view.h +5 -5
- package/libcxx/include/__ranges/filter_view.h +10 -10
- package/libcxx/include/__ranges/iota_view.h +41 -22
- package/libcxx/include/__ranges/owning_view.h +15 -15
- package/libcxx/include/__ranges/ref_view.h +6 -6
- package/libcxx/include/__ranges/repeat_view.h +17 -10
- package/libcxx/include/__ranges/single_view.h +8 -8
- package/libcxx/include/__ranges/take_view.h +9 -9
- package/libcxx/include/__ranges/transform_view.h +1 -2
- package/libcxx/include/__ranges/view_interface.h +10 -10
- package/libcxx/include/__ranges/zip_transform_view.h +357 -0
- package/libcxx/include/__ranges/zip_view.h +20 -20
- package/libcxx/include/__split_buffer +612 -240
- package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
- package/libcxx/include/__stop_token/stop_callback.h +2 -2
- package/libcxx/include/__stop_token/stop_source.h +1 -1
- package/libcxx/include/__stop_token/stop_state.h +4 -4
- package/libcxx/include/__stop_token/stop_token.h +1 -1
- package/libcxx/include/__string/char_traits.h +51 -31
- package/libcxx/include/__string/constexpr_c_functions.h +5 -5
- package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
- package/libcxx/include/__system_error/error_category.h +8 -8
- package/libcxx/include/__system_error/error_code.h +5 -5
- package/libcxx/include/__system_error/error_condition.h +4 -4
- package/libcxx/include/__system_error/system_error.h +1 -1
- package/libcxx/include/__thread/id.h +1 -1
- package/libcxx/include/__thread/jthread.h +1 -1
- package/libcxx/include/__thread/poll_with_backoff.h +27 -8
- package/libcxx/include/__thread/support/c11.h +8 -8
- package/libcxx/include/__thread/support/pthread.h +8 -8
- package/libcxx/include/__thread/support/windows.h +8 -8
- package/libcxx/include/__thread/thread.h +13 -8
- package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
- package/libcxx/include/__tree +849 -701
- package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
- package/libcxx/include/__tuple/tuple_element.h +0 -12
- package/libcxx/include/__tuple/tuple_size.h +0 -4
- package/libcxx/include/__tuple/tuple_transform.h +45 -0
- package/libcxx/include/__type_traits/aligned_storage.h +13 -40
- package/libcxx/include/__type_traits/desugars_to.h +4 -0
- package/libcxx/include/__type_traits/invoke.h +8 -0
- package/libcxx/include/__type_traits/is_allocator.h +6 -7
- package/libcxx/include/__type_traits/is_array.h +26 -0
- package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
- package/libcxx/include/__type_traits/is_final.h +1 -1
- package/libcxx/include/__type_traits/is_floating_point.h +7 -6
- package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
- package/libcxx/include/__type_traits/is_specialization.h +2 -6
- package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
- package/libcxx/include/__type_traits/make_transparent.h +52 -0
- package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
- package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
- package/libcxx/include/__utility/cmp.h +19 -7
- package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
- package/libcxx/include/__utility/in_place.h +1 -1
- package/libcxx/include/__utility/integer_sequence.h +56 -41
- package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
- package/libcxx/include/__utility/pair.h +22 -25
- package/libcxx/include/__utility/scope_guard.h +2 -0
- package/libcxx/include/__utility/try_key_extraction.h +114 -0
- package/libcxx/include/__vector/vector.h +187 -160
- package/libcxx/include/__vector/vector_bool.h +76 -83
- package/libcxx/include/any +118 -155
- package/libcxx/include/array +88 -56
- package/libcxx/include/atomic +2 -0
- package/libcxx/include/barrier +20 -24
- package/libcxx/include/bitset +49 -30
- package/libcxx/include/ccomplex +3 -11
- package/libcxx/include/chrono +47 -0
- package/libcxx/include/ciso646 +3 -6
- package/libcxx/include/complex +77 -65
- package/libcxx/include/complex.h +10 -10
- package/libcxx/include/condition_variable +3 -3
- package/libcxx/include/cstdalign +3 -10
- package/libcxx/include/cstdbool +3 -10
- package/libcxx/include/ctgmath +2 -11
- package/libcxx/include/ctype.h +24 -24
- package/libcxx/include/cwchar +2 -2
- package/libcxx/include/deque +109 -225
- package/libcxx/include/errno.h +269 -269
- package/libcxx/include/exception +4 -1
- package/libcxx/include/ext/hash_map +7 -48
- package/libcxx/include/ext/hash_set +2 -8
- package/libcxx/include/fenv.h +43 -43
- package/libcxx/include/flat_map +663 -11
- package/libcxx/include/flat_set +543 -8
- package/libcxx/include/float.h +16 -16
- package/libcxx/include/forward_list +33 -53
- package/libcxx/include/fstream +57 -42
- package/libcxx/include/future +41 -51
- package/libcxx/include/initializer_list +9 -3
- package/libcxx/include/inttypes.h +16 -16
- package/libcxx/include/ios +28 -28
- package/libcxx/include/istream +19 -13
- package/libcxx/include/iterator +10 -0
- package/libcxx/include/latch +7 -5
- package/libcxx/include/limits +4 -4
- package/libcxx/include/list +61 -79
- package/libcxx/include/map +386 -274
- package/libcxx/include/math.h +19 -0
- package/libcxx/include/mdspan +1 -5
- package/libcxx/include/mutex +29 -19
- package/libcxx/include/optional +644 -149
- package/libcxx/include/print +9 -5
- package/libcxx/include/queue +39 -37
- package/libcxx/include/ranges +48 -0
- package/libcxx/include/regex +33 -31
- package/libcxx/include/scoped_allocator +16 -11
- package/libcxx/include/semaphore +15 -18
- package/libcxx/include/set +220 -192
- package/libcxx/include/shared_mutex +3 -8
- package/libcxx/include/span +53 -37
- package/libcxx/include/sstream +34 -28
- package/libcxx/include/stack +13 -15
- package/libcxx/include/stddef.h +10 -10
- package/libcxx/include/stdexcept +2 -2
- package/libcxx/include/stdio.h +20 -21
- package/libcxx/include/streambuf +59 -19
- package/libcxx/include/string +574 -573
- package/libcxx/include/string_view +113 -89
- package/libcxx/include/strstream +10 -10
- package/libcxx/include/syncstream +4 -4
- package/libcxx/include/tgmath.h +12 -12
- package/libcxx/include/tuple +242 -212
- package/libcxx/include/type_traits +8 -2
- package/libcxx/include/typeindex +5 -3
- package/libcxx/include/typeinfo +92 -89
- package/libcxx/include/unordered_map +179 -304
- package/libcxx/include/unordered_set +168 -195
- package/libcxx/include/utility +12 -0
- package/libcxx/include/valarray +106 -161
- package/libcxx/include/variant +25 -33
- package/libcxx/include/version +41 -24
- package/libcxx/include/wctype.h +29 -29
- package/libcxx/libc/hdr/errno_macros.h +3 -1
- package/libcxx/libc/hdr/stdint_proxy.h +18 -0
- package/libcxx/libc/hdr/types/wchar_t.h +23 -0
- package/libcxx/libc/hdr/wchar_overlay.h +69 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
- package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
- package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
- package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
- package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
- package/libcxx/libc/shared/libc_common.h +5 -0
- package/libcxx/libc/src/__support/CPP/bit.h +50 -12
- package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
- package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
- package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
- package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
- package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
- package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
- package/libcxx/libc/src/__support/big_int.h +14 -14
- package/libcxx/libc/src/__support/common.h +3 -2
- package/libcxx/libc/src/__support/ctype_utils.h +19 -12
- package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
- package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
- package/libcxx/libc/src/__support/libc_assert.h +2 -0
- package/libcxx/libc/src/__support/macros/attributes.h +44 -1
- package/libcxx/libc/src/__support/macros/config.h +23 -0
- package/libcxx/libc/src/__support/macros/null_check.h +1 -2
- package/libcxx/libc/src/__support/macros/optimization.h +3 -0
- package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
- package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
- package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
- package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
- package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
- package/libcxx/libc/src/__support/math_extras.h +20 -4
- package/libcxx/libc/src/__support/str_to_float.h +98 -125
- package/libcxx/libc/src/__support/str_to_integer.h +39 -27
- package/libcxx/libc/src/__support/wctype_utils.h +588 -0
- package/libcxx/src/any.cpp +4 -0
- package/libcxx/src/atomic.cpp +365 -80
- package/libcxx/src/barrier.cpp +4 -3
- package/libcxx/src/charconv.cpp +6 -3
- package/libcxx/src/condition_variable_destructor.cpp +1 -1
- package/libcxx/src/error_category.cpp +3 -1
- package/libcxx/src/exception.cpp +2 -10
- package/libcxx/src/experimental/time_zone.cpp +1 -1
- package/libcxx/src/experimental/tzdb.cpp +4 -1
- package/libcxx/src/filesystem/error.h +4 -22
- package/libcxx/src/filesystem/format_string.h +9 -18
- package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
- package/libcxx/src/filesystem/operations.cpp +2 -9
- package/libcxx/src/filesystem/path.cpp +3 -1
- package/libcxx/src/include/aligned_alloc.h +65 -0
- package/libcxx/src/include/config_elast.h +1 -1
- package/libcxx/src/include/from_chars_floating_point.h +11 -7
- package/libcxx/src/include/overridable_function.h +8 -10
- package/libcxx/src/iostream.cpp +56 -37
- package/libcxx/src/locale.cpp +213 -196
- package/libcxx/src/memory.cpp +12 -14
- package/libcxx/src/mutex_destructor.cpp +1 -1
- package/libcxx/src/new.cpp +5 -5
- package/libcxx/src/optional.cpp +4 -0
- package/libcxx/src/print.cpp +9 -1
- package/libcxx/src/random.cpp +0 -26
- package/libcxx/src/string.cpp +10 -25
- package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
- package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
- package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
- package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
- package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
- package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
- package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
- package/libcxx/src/support/win32/locale_win32.cpp +1 -1
- package/libcxx/src/system_error.cpp +2 -0
- package/libcxx/src/thread.cpp +1 -3
- package/libcxx/src/valarray.cpp +1 -2
- package/libcxx/src/vector.cpp +2 -2
- package/libcxxabi/include/__cxxabi_config.h +42 -23
- package/libcxxabi/src/cxa_exception.cpp +4 -2
- package/libcxxabi/src/cxa_exception.h +16 -14
- package/libcxxabi/src/cxa_personality.cpp +126 -9
- package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
- package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
- package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
- package/libcxxabi/src/demangle/Utility.h +21 -7
- package/libcxxabi/src/fallback_malloc.cpp +1 -1
- package/libcxxabi/src/private_typeinfo.cpp +6 -0
- package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
- package/libtsan/LICENSE.TXT +311 -0
- package/libtsan/builtins/assembly.h +41 -8
- package/libtsan/interception/interception_win.cpp +4 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
- package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
- package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
- package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
- package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
- package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
- package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
- package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
- package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
- package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
- package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
- package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
- package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
- package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
- package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
- package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
- package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
- package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
- package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
- package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
- package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
- package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
- package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
- package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
- package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
- package/libtsan/tsan_debugging.cpp +2 -2
- package/libtsan/tsan_flags.cpp +37 -0
- package/libtsan/tsan_flags.h +8 -0
- package/libtsan/tsan_flags.inc +12 -0
- package/libtsan/tsan_interceptors.h +9 -1
- package/libtsan/tsan_interceptors_mac.cpp +19 -0
- package/libtsan/tsan_interceptors_posix.cpp +78 -32
- package/libtsan/tsan_interface.h +3 -3
- package/libtsan/tsan_interface_ann.cpp +23 -9
- package/libtsan/tsan_mman.cpp +18 -4
- package/libtsan/tsan_platform.h +44 -7
- package/libtsan/tsan_platform_linux.cpp +42 -14
- package/libtsan/tsan_platform_mac.cpp +16 -3
- package/libtsan/tsan_report.h +14 -1
- package/libtsan/tsan_rtl.cpp +14 -0
- package/libtsan/tsan_rtl.h +7 -2
- package/libtsan/tsan_rtl_aarch64.S +3 -5
- package/libtsan/tsan_rtl_access.cpp +8 -3
- package/libtsan/tsan_rtl_amd64.S +2 -0
- package/libtsan/tsan_rtl_mutex.cpp +94 -49
- package/libtsan/tsan_rtl_report.cpp +132 -65
- package/libtsan/tsan_rtl_thread.cpp +31 -9
- package/libtsan/tsan_symbolize.cpp +1 -1
- package/libtsan/tsan_symbolize.h +1 -1
- package/libtsan/tsan_trace.h +1 -1
- package/libunwind/include/__libunwind_config.h +11 -2
- package/libunwind/include/libunwind.h +117 -11
- package/libunwind/include/unwind_arm_ehabi.h +4 -1
- package/libunwind/src/AddressSpace.hpp +42 -20
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +62 -23
- package/libunwind/src/EHHeaderParser.hpp +7 -4
- package/libunwind/src/Registers.hpp +226 -22
- package/libunwind/src/Unwind-seh.cpp +6 -7
- package/libunwind/src/Unwind-wasm.c +7 -7
- package/libunwind/src/UnwindCursor.hpp +167 -49
- package/libunwind/src/UnwindLevel1.c +46 -17
- package/libunwind/src/UnwindRegistersRestore.S +46 -5
- package/libunwind/src/UnwindRegistersSave.S +86 -2
- package/libunwind/src/assembly.h +5 -1
- package/libunwind/src/config.h +9 -0
- package/libunwind/src/gcc_personality_v0.c +79 -6
- package/libunwind/src/libunwind.cpp +104 -4
- package/libunwind/src/libunwind_ext.h +7 -1
- package/libunwind/src/shadow_stack_unwind.h +2 -2
- package/lldb/pretty_printers.py +948 -0
- package/package.json +1 -1
- package/std/Build/Cache/Path.zig +1 -1
- package/std/Build/Cache.zig +6 -6
- package/std/Build/Step/Compile.zig +18 -20
- package/std/Build/Step/ConfigHeader.zig +1 -1
- package/std/Build/Step/Run.zig +15 -8
- package/std/Build/Step.zig +3 -7
- package/std/Build/Watch/FsEvents.zig +1 -1
- package/std/Build/WebServer.zig +2 -2
- package/std/Build/abi.zig +1 -1
- package/std/Build.zig +0 -3
- package/std/Io/Dir.zig +9 -4
- package/std/Io/Dispatch.zig +8 -18
- package/std/Io/File/Writer.zig +8 -6
- package/std/Io/File.zig +0 -9
- package/std/Io/Kqueue.zig +3 -3
- package/std/Io/Reader.zig +8 -14
- package/std/Io/Semaphore.zig +112 -17
- package/std/Io/Terminal.zig +1 -1
- package/std/Io/Threaded.zig +183 -46
- package/std/Io/Uring.zig +18 -20
- package/std/Io/Writer.zig +10 -7
- package/std/Io/net/HostName.zig +11 -6
- package/std/Io/net.zig +11 -11
- package/std/Io.zig +104 -38
- package/std/Random/ChaCha.zig +2 -2
- package/std/Random/benchmark.zig +2 -2
- package/std/Random.zig +6 -6
- package/std/SemanticVersion.zig +1 -1
- package/std/Target/Query.zig +2 -2
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +415 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +67 -14
- package/std/Thread.zig +5 -2
- package/std/array_hash_map.zig +103 -57
- package/std/array_list.zig +10 -31
- package/std/base64.zig +5 -5
- package/std/bit_set.zig +86 -69
- package/std/c/haiku.zig +3 -0
- package/std/c/serenity.zig +1 -6
- package/std/c.zig +123 -32
- package/std/compress/flate/Decompress.zig +3 -4
- package/std/compress/zstd/Decompress.zig +7 -9
- package/std/crypto/25519/curve25519.zig +2 -2
- package/std/crypto/25519/edwards25519.zig +3 -3
- package/std/crypto/25519/ristretto255.zig +2 -2
- package/std/crypto/25519/scalar.zig +6 -6
- package/std/crypto/25519/x25519.zig +1 -1
- package/std/crypto/Certificate.zig +14 -2
- package/std/crypto/Sha1.zig +1 -1
- package/std/crypto/aegis.zig +45 -39
- package/std/crypto/aes_ccm.zig +22 -22
- package/std/crypto/aes_gcm.zig +10 -12
- package/std/crypto/aes_ocb.zig +9 -9
- package/std/crypto/argon2.zig +15 -15
- package/std/crypto/ascon.zig +75 -33
- package/std/crypto/bcrypt.zig +20 -10
- package/std/crypto/benchmark.zig +7 -7
- package/std/crypto/blake2.zig +100 -64
- package/std/crypto/cbc_mac.zig +1 -1
- package/std/crypto/chacha20.zig +10 -10
- package/std/crypto/cmac.zig +3 -3
- package/std/crypto/codecs/asn1/Oid.zig +12 -1
- package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
- package/std/crypto/codecs/asn1.zig +1 -1
- package/std/crypto/codecs/base64_hex_ct.zig +3 -5
- package/std/crypto/ecdsa.zig +9 -9
- package/std/crypto/ff.zig +4 -5
- package/std/crypto/ghash_polyval.zig +4 -4
- package/std/crypto/hkdf.zig +1 -1
- package/std/crypto/isap.zig +3 -3
- package/std/crypto/kangarootwelve.zig +1 -1
- package/std/crypto/keccak_p.zig +8 -8
- package/std/crypto/md5.zig +1 -1
- package/std/crypto/ml_dsa.zig +39 -39
- package/std/crypto/ml_kem.zig +12 -34
- package/std/crypto/modes.zig +2 -2
- package/std/crypto/pbkdf2.zig +1 -1
- package/std/crypto/pcurves/common.zig +4 -5
- package/std/crypto/pcurves/p256/scalar.zig +3 -3
- package/std/crypto/pcurves/p384/scalar.zig +2 -2
- package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
- package/std/crypto/pcurves/tests/p256.zig +5 -5
- package/std/crypto/pcurves/tests/p384.zig +5 -5
- package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
- package/std/crypto/salsa20.zig +8 -8
- package/std/crypto/sha2.zig +2 -2
- package/std/crypto/sha3.zig +2 -2
- package/std/crypto/siphash.zig +1 -1
- package/std/crypto/timing_safe.zig +10 -9
- package/std/crypto/tls/Client.zig +89 -13
- package/std/crypto/tls.zig +1 -1
- package/std/crypto.zig +4 -3
- package/std/debug/Dwarf.zig +15 -12
- package/std/debug/Pdb.zig +25 -17
- package/std/debug.zig +14 -8
- package/std/deque.zig +1 -1
- package/std/elf.zig +1 -1
- package/std/enums.zig +8 -8
- package/std/fmt/parse_float/decimal.zig +1 -1
- package/std/fmt/parse_float.zig +1 -1
- package/std/fmt.zig +14 -10
- package/std/fs/path.zig +7 -5
- package/std/hash/Adler32.zig +3 -3
- package/std/hash/benchmark.zig +2 -2
- package/std/hash/wyhash.zig +2 -2
- package/std/hash/xxhash.zig +0 -6
- package/std/hash_map.zig +20 -1
- package/std/heap/BufferFirstAllocator.zig +165 -0
- package/std/heap/debug_allocator.zig +2 -2
- package/std/heap/memory_pool.zig +34 -197
- package/std/heap.zig +2 -133
- package/std/http/Client.zig +21 -24
- package/std/http.zig +4 -5
- package/std/json/Scanner.zig +2 -2
- package/std/json/static.zig +2 -2
- package/std/{builtin.zig → lang.zig} +5 -1
- package/std/leb128.zig +2 -2
- package/std/math/big/int.zig +5 -5
- package/std/math/big.zig +4 -4
- package/std/math/copysign.zig +1 -1
- package/std/math/float.zig +62 -0
- package/std/math/frexp.zig +4 -4
- package/std/math/ilogb.zig +1 -1
- package/std/math/isfinite.zig +1 -1
- package/std/math/isinf.zig +1 -1
- package/std/math/isnan.zig +1 -2
- package/std/math/isnormal.zig +2 -2
- package/std/math/iszero.zig +2 -2
- package/std/math/ldexp.zig +2 -2
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +1 -2
- package/std/math/nextafter.zig +3 -4
- package/std/math/pow.zig +1 -1
- package/std/math/powi.zig +2 -3
- package/std/math/signbit.zig +0 -1
- package/std/math.zig +21 -26
- package/std/mem/Allocator.zig +0 -6
- package/std/mem.zig +31 -31
- package/std/meta/trailer_flags.zig +1 -1
- package/std/meta.zig +4 -36
- package/std/multi_array_list.zig +24 -0
- package/std/os/emscripten.zig +7 -6
- package/std/os/linux/IoUring.zig +2 -0
- package/std/os/linux/aarch64.zig +41 -12
- package/std/os/linux/arc.zig +41 -12
- package/std/os/linux/arm.zig +41 -12
- package/std/os/linux/bpf.zig +6 -0
- package/std/os/linux/hexagon.zig +33 -11
- package/std/os/linux/ioctl.zig +2 -2
- package/std/os/linux/loongarch32.zig +41 -13
- package/std/os/linux/loongarch64.zig +41 -12
- package/std/os/linux/m68k.zig +41 -13
- package/std/os/linux/mips.zig +67 -36
- package/std/os/linux/mips64.zig +60 -29
- package/std/os/linux/mipsn32.zig +60 -29
- package/std/os/linux/or1k.zig +41 -12
- package/std/os/linux/powerpc.zig +41 -12
- package/std/os/linux/powerpc64.zig +41 -12
- package/std/os/linux/riscv32.zig +41 -12
- package/std/os/linux/riscv64.zig +41 -12
- package/std/os/linux/s390x.zig +44 -7
- package/std/os/linux/sparc64.zig +83 -52
- package/std/os/linux/syscalls.zig +26 -1
- package/std/os/linux/thumb.zig +52 -36
- package/std/os/linux/x32.zig +41 -12
- package/std/os/linux/x86.zig +44 -15
- package/std/os/linux/x86_64.zig +41 -12
- package/std/os/linux.zig +416 -450
- package/std/os/plan9.zig +1 -1
- package/std/os/uefi/hii.zig +1 -1
- package/std/os/uefi/tables/boot_services.zig +9 -8
- package/std/os/uefi/tables/runtime_services.zig +1 -1
- package/std/os/windows.zig +130 -1
- package/std/os.zig +41 -0
- package/std/posix.zig +1 -1
- package/std/process/Environ.zig +1 -1
- package/std/process.zig +5 -4
- package/std/simd.zig +4 -21
- package/std/sort.zig +3 -3
- package/std/start.zig +17 -4
- package/std/std.zig +8 -1
- package/std/tar/Writer.zig +39 -33
- package/std/tar.zig +8 -4
- package/std/testing.zig +2 -2
- package/std/unicode.zig +13 -8
- package/std/zig/Ast/Render.zig +6 -30
- package/std/zig/Ast.zig +12 -37
- package/std/zig/AstGen.zig +175 -332
- package/std/zig/AstRlAnnotate.zig +1 -22
- package/std/zig/AstSmith.zig +5 -11
- package/std/zig/BuiltinFn.zig +0 -32
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/LibCDirs.zig +15 -6
- package/std/zig/LibCInstallation.zig +34 -12
- package/std/zig/Parse.zig +11 -76
- package/std/zig/TokenSmith.zig +0 -6
- package/std/zig/WindowsSdk.zig +18 -18
- package/std/zig/Zir.zig +65 -132
- package/std/zig/ZonGen.zig +19 -27
- package/std/zig/llvm/Builder.zig +39 -33
- package/std/zig/llvm/bitcode_writer.zig +3 -3
- package/std/zig/llvm/ir.zig +8 -8
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +0 -10
- package/std/zig/target.zig +1 -4
- package/std/zig/tokenizer.zig +4 -43
- package/std/zig.zig +3 -14
- package/std/zip.zig +5 -5
- package/std/zon/parse.zig +1 -1
- package/zig.h +340 -1
- package/compiler_rt/long_double.zig +0 -37
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
- package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
- package/libc/mingw/math/lrintl.c +0 -18
- package/libc/mingw/math/rintl.c +0 -16
- package/libc/mingw/winpthreads/spinlock.c +0 -82
- package/libc/musl/src/linux/tee.c +0 -8
- package/libc/musl/src/math/i386/lrintl.c +0 -8
- package/libc/musl/src/math/i386/rintl.c +0 -7
- package/libc/musl/src/math/lrintl.c +0 -36
- package/libc/musl/src/math/rintl.c +0 -29
- package/libc/musl/src/math/s390x/rintl.c +0 -15
- package/libc/musl/src/math/x32/lrintl.s +0 -7
- package/libc/musl/src/math/x32/rintl.s +0 -6
- package/libc/musl/src/math/x86_64/lrintl.c +0 -8
- package/libc/musl/src/math/x86_64/rintl.c +0 -7
- package/libc/musl/src/string/strdup.c +0 -10
- package/libc/musl/src/string/strndup.c +0 -12
- package/libc/musl/src/string/wcsdup.c +0 -10
- package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
- package/libc/musl/src/thread/pthread_spin_init.c +0 -6
- package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
- package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
- package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
- package/libc/musl/src/unistd/dup2.c +0 -20
- package/libc/musl/src/unistd/dup3.c +0 -26
- package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
- /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/
|
|
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(
|
|
112
|
-
|
|
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)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator
|
|
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 {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator
|
|
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 {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
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 {
|
|
354
|
-
|
|
355
|
-
|
|
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) {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
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 {
|
|
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) {
|
|
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 {
|
|
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 {
|
|
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
|
|
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
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(!
|
|
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> && !
|
|
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(!
|
|
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(!
|
|
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> && !
|
|
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(!
|
|
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<
|
|
736
|
-
requires(__has_input_iterator_category<_InputIterator>::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<
|
|
806
|
+
-> flat_multiset<__iterator_value_type<_InputIterator>, _Compare>;
|
|
739
807
|
|
|
740
|
-
template <class _InputIterator, class _Compare = less<
|
|
741
|
-
requires(__has_input_iterator_category<_InputIterator>::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<
|
|
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<!
|
|
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<
|
|
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(!
|
|
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(!
|
|
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 =
|