@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
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
#include <__algorithm/upper_bound.h>
|
|
23
23
|
#include <__assert>
|
|
24
24
|
#include <__compare/synth_three_way.h>
|
|
25
|
-
#include <__concepts/convertible_to.h>
|
|
26
25
|
#include <__concepts/swappable.h>
|
|
27
26
|
#include <__config>
|
|
28
27
|
#include <__cstddef/byte.h>
|
|
@@ -30,7 +29,6 @@
|
|
|
30
29
|
#include <__flat_map/key_value_iterator.h>
|
|
31
30
|
#include <__flat_map/sorted_equivalent.h>
|
|
32
31
|
#include <__flat_map/utils.h>
|
|
33
|
-
#include <__functional/invoke.h>
|
|
34
32
|
#include <__functional/is_transparent.h>
|
|
35
33
|
#include <__functional/operations.h>
|
|
36
34
|
#include <__fwd/vector.h>
|
|
@@ -47,7 +45,7 @@
|
|
|
47
45
|
#include <__ranges/container_compatible_range.h>
|
|
48
46
|
#include <__ranges/drop_view.h>
|
|
49
47
|
#include <__ranges/from_range.h>
|
|
50
|
-
#include <__ranges/
|
|
48
|
+
#include <__ranges/range_adaptor.h>
|
|
51
49
|
#include <__ranges/size.h>
|
|
52
50
|
#include <__ranges/subrange.h>
|
|
53
51
|
#include <__ranges/zip_view.h>
|
|
@@ -57,14 +55,12 @@
|
|
|
57
55
|
#include <__type_traits/is_allocator.h>
|
|
58
56
|
#include <__type_traits/is_nothrow_constructible.h>
|
|
59
57
|
#include <__type_traits/is_same.h>
|
|
60
|
-
#include <__type_traits/maybe_const.h>
|
|
61
58
|
#include <__utility/exception_guard.h>
|
|
62
59
|
#include <__utility/move.h>
|
|
63
60
|
#include <__utility/pair.h>
|
|
64
61
|
#include <__utility/scope_guard.h>
|
|
65
62
|
#include <__vector/vector.h>
|
|
66
63
|
#include <initializer_list>
|
|
67
|
-
#include <stdexcept>
|
|
68
64
|
|
|
69
65
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
70
66
|
# pragma GCC system_header
|
|
@@ -114,11 +110,12 @@ public:
|
|
|
114
110
|
class value_compare {
|
|
115
111
|
private:
|
|
116
112
|
_LIBCPP_NO_UNIQUE_ADDRESS key_compare __comp_;
|
|
117
|
-
_LIBCPP_HIDE_FROM_ABI value_compare(key_compare __c) : __comp_(__c) {}
|
|
113
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 value_compare(key_compare __c) : __comp_(__c) {}
|
|
118
114
|
friend flat_multimap;
|
|
119
115
|
|
|
120
116
|
public:
|
|
121
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
117
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool
|
|
118
|
+
operator()(const_reference __x, const_reference __y) const {
|
|
122
119
|
return __comp_(__x.first, __y.first);
|
|
123
120
|
}
|
|
124
121
|
};
|
|
@@ -137,17 +134,17 @@ private:
|
|
|
137
134
|
|
|
138
135
|
public:
|
|
139
136
|
// [flat.map.cons], construct/copy/destroy
|
|
140
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap() noexcept(
|
|
137
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap() noexcept(
|
|
141
138
|
is_nothrow_default_constructible_v<_KeyContainer> && is_nothrow_default_constructible_v<_MappedContainer> &&
|
|
142
139
|
is_nothrow_default_constructible_v<_Compare>)
|
|
143
140
|
: __containers_(), __compare_() {}
|
|
144
141
|
|
|
145
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(const flat_multimap&) = default;
|
|
142
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(const flat_multimap&) = default;
|
|
146
143
|
|
|
147
144
|
// The copy/move constructors are not specified in the spec, which means they should be defaulted.
|
|
148
145
|
// However, the move constructor can potentially leave a moved-from object in an inconsistent
|
|
149
146
|
// state if an exception is thrown.
|
|
150
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(flat_multimap&& __other) noexcept(
|
|
147
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(flat_multimap&& __other) noexcept(
|
|
151
148
|
is_nothrow_move_constructible_v<_KeyContainer> && is_nothrow_move_constructible_v<_MappedContainer> &&
|
|
152
149
|
is_nothrow_move_constructible_v<_Compare>)
|
|
153
150
|
# if _LIBCPP_HAS_EXCEPTIONS
|
|
@@ -168,7 +165,8 @@ public:
|
|
|
168
165
|
|
|
169
166
|
template <class _Allocator>
|
|
170
167
|
requires __allocator_ctor_constraint<_Allocator>
|
|
171
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
168
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
169
|
+
flat_multimap(const flat_multimap& __other, const _Allocator& __alloc)
|
|
172
170
|
: flat_multimap(__ctor_uses_allocator_tag{},
|
|
173
171
|
__alloc,
|
|
174
172
|
__other.__containers_.keys,
|
|
@@ -177,7 +175,7 @@ public:
|
|
|
177
175
|
|
|
178
176
|
template <class _Allocator>
|
|
179
177
|
requires __allocator_ctor_constraint<_Allocator>
|
|
180
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(flat_multimap&& __other, const _Allocator& __alloc)
|
|
178
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(flat_multimap&& __other, const _Allocator& __alloc)
|
|
181
179
|
# if _LIBCPP_HAS_EXCEPTIONS
|
|
182
180
|
try
|
|
183
181
|
# endif // _LIBCPP_HAS_EXCEPTIONS
|
|
@@ -194,7 +192,7 @@ public:
|
|
|
194
192
|
# endif // _LIBCPP_HAS_EXCEPTIONS
|
|
195
193
|
}
|
|
196
194
|
|
|
197
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(
|
|
195
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
198
196
|
key_container_type __key_cont, mapped_container_type __mapped_cont, const key_compare& __comp = key_compare())
|
|
199
197
|
: __containers_{.keys = std::move(__key_cont), .values = std::move(__mapped_cont)}, __compare_(__comp) {
|
|
200
198
|
_LIBCPP_ASSERT_VALID_INPUT_RANGE(__containers_.keys.size() == __containers_.values.size(),
|
|
@@ -204,7 +202,7 @@ public:
|
|
|
204
202
|
|
|
205
203
|
template <class _Allocator>
|
|
206
204
|
requires __allocator_ctor_constraint<_Allocator>
|
|
207
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(
|
|
205
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
208
206
|
const key_container_type& __key_cont, const mapped_container_type& __mapped_cont, const _Allocator& __alloc)
|
|
209
207
|
: flat_multimap(__ctor_uses_allocator_tag{}, __alloc, __key_cont, __mapped_cont) {
|
|
210
208
|
_LIBCPP_ASSERT_VALID_INPUT_RANGE(__containers_.keys.size() == __containers_.values.size(),
|
|
@@ -214,22 +212,22 @@ public:
|
|
|
214
212
|
|
|
215
213
|
template <class _Allocator>
|
|
216
214
|
requires __allocator_ctor_constraint<_Allocator>
|
|
217
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
215
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
216
|
+
const key_container_type& __key_cont,
|
|
217
|
+
const mapped_container_type& __mapped_cont,
|
|
218
|
+
const key_compare& __comp,
|
|
219
|
+
const _Allocator& __alloc)
|
|
222
220
|
: flat_multimap(__ctor_uses_allocator_tag{}, __alloc, __key_cont, __mapped_cont, __comp) {
|
|
223
221
|
_LIBCPP_ASSERT_VALID_INPUT_RANGE(__containers_.keys.size() == __containers_.values.size(),
|
|
224
222
|
"flat_multimap keys and mapped containers have different size");
|
|
225
223
|
__sort();
|
|
226
224
|
}
|
|
227
225
|
|
|
228
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
226
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
227
|
+
sorted_equivalent_t,
|
|
228
|
+
key_container_type __key_cont,
|
|
229
|
+
mapped_container_type __mapped_cont,
|
|
230
|
+
const key_compare& __comp = key_compare())
|
|
233
231
|
: __containers_{.keys = std::move(__key_cont), .values = std::move(__mapped_cont)}, __compare_(__comp) {
|
|
234
232
|
_LIBCPP_ASSERT_VALID_INPUT_RANGE(__containers_.keys.size() == __containers_.values.size(),
|
|
235
233
|
"flat_multimap keys and mapped containers have different size");
|
|
@@ -238,11 +236,11 @@ public:
|
|
|
238
236
|
|
|
239
237
|
template <class _Allocator>
|
|
240
238
|
requires __allocator_ctor_constraint<_Allocator>
|
|
241
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
239
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
240
|
+
sorted_equivalent_t,
|
|
241
|
+
const key_container_type& __key_cont,
|
|
242
|
+
const mapped_container_type& __mapped_cont,
|
|
243
|
+
const _Allocator& __alloc)
|
|
246
244
|
: flat_multimap(__ctor_uses_allocator_tag{}, __alloc, __key_cont, __mapped_cont) {
|
|
247
245
|
_LIBCPP_ASSERT_VALID_INPUT_RANGE(__containers_.keys.size() == __containers_.values.size(),
|
|
248
246
|
"flat_multimap keys and mapped containers have different size");
|
|
@@ -251,33 +249,35 @@ public:
|
|
|
251
249
|
|
|
252
250
|
template <class _Allocator>
|
|
253
251
|
requires __allocator_ctor_constraint<_Allocator>
|
|
254
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
252
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
253
|
+
sorted_equivalent_t,
|
|
254
|
+
const key_container_type& __key_cont,
|
|
255
|
+
const mapped_container_type& __mapped_cont,
|
|
256
|
+
const key_compare& __comp,
|
|
257
|
+
const _Allocator& __alloc)
|
|
260
258
|
: flat_multimap(__ctor_uses_allocator_tag{}, __alloc, __key_cont, __mapped_cont, __comp) {
|
|
261
259
|
_LIBCPP_ASSERT_VALID_INPUT_RANGE(__containers_.keys.size() == __containers_.values.size(),
|
|
262
260
|
"flat_multimap keys and mapped containers have different size");
|
|
263
261
|
_LIBCPP_ASSERT_SEMANTIC_REQUIREMENT(__is_sorted(__containers_.keys), "Key container is not sorted");
|
|
264
262
|
}
|
|
265
263
|
|
|
266
|
-
_LIBCPP_HIDE_FROM_ABI explicit flat_multimap(const key_compare& __comp)
|
|
264
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multimap(const key_compare& __comp)
|
|
265
|
+
: __containers_(), __compare_(__comp) {}
|
|
267
266
|
|
|
268
267
|
template <class _Allocator>
|
|
269
268
|
requires __allocator_ctor_constraint<_Allocator>
|
|
270
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
269
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
270
|
+
flat_multimap(const key_compare& __comp, const _Allocator& __alloc)
|
|
271
271
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc, __comp) {}
|
|
272
272
|
|
|
273
273
|
template <class _Allocator>
|
|
274
274
|
requires __allocator_ctor_constraint<_Allocator>
|
|
275
|
-
_LIBCPP_HIDE_FROM_ABI explicit flat_multimap(const _Allocator& __alloc)
|
|
275
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 explicit flat_multimap(const _Allocator& __alloc)
|
|
276
276
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc) {}
|
|
277
277
|
|
|
278
278
|
template <class _InputIterator>
|
|
279
279
|
requires __has_input_iterator_category<_InputIterator>::value
|
|
280
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
280
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
281
281
|
flat_multimap(_InputIterator __first, _InputIterator __last, const key_compare& __comp = key_compare())
|
|
282
282
|
: __containers_(), __compare_(__comp) {
|
|
283
283
|
insert(__first, __last);
|
|
@@ -285,7 +285,7 @@ public:
|
|
|
285
285
|
|
|
286
286
|
template <class _InputIterator, class _Allocator>
|
|
287
287
|
requires(__has_input_iterator_category<_InputIterator>::value && __allocator_ctor_constraint<_Allocator>)
|
|
288
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
288
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
289
289
|
flat_multimap(_InputIterator __first, _InputIterator __last, const key_compare& __comp, const _Allocator& __alloc)
|
|
290
290
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc, __comp) {
|
|
291
291
|
insert(__first, __last);
|
|
@@ -293,91 +293,99 @@ public:
|
|
|
293
293
|
|
|
294
294
|
template <class _InputIterator, class _Allocator>
|
|
295
295
|
requires(__has_input_iterator_category<_InputIterator>::value && __allocator_ctor_constraint<_Allocator>)
|
|
296
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
296
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
297
|
+
flat_multimap(_InputIterator __first, _InputIterator __last, const _Allocator& __alloc)
|
|
297
298
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc) {
|
|
298
299
|
insert(__first, __last);
|
|
299
300
|
}
|
|
300
301
|
|
|
301
302
|
template <_ContainerCompatibleRange<value_type> _Range>
|
|
302
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(from_range_t __fr, _Range&& __rg)
|
|
303
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(from_range_t __fr, _Range&& __rg)
|
|
303
304
|
: flat_multimap(__fr, std::forward<_Range>(__rg), key_compare()) {}
|
|
304
305
|
|
|
305
306
|
template <_ContainerCompatibleRange<value_type> _Range, class _Allocator>
|
|
306
307
|
requires __allocator_ctor_constraint<_Allocator>
|
|
307
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
308
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
309
|
+
flat_multimap(from_range_t, _Range&& __rg, const _Allocator& __alloc)
|
|
308
310
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc) {
|
|
309
311
|
insert_range(std::forward<_Range>(__rg));
|
|
310
312
|
}
|
|
311
313
|
|
|
312
314
|
template <_ContainerCompatibleRange<value_type> _Range>
|
|
313
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
315
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
316
|
+
flat_multimap(from_range_t, _Range&& __rg, const key_compare& __comp)
|
|
317
|
+
: flat_multimap(__comp) {
|
|
314
318
|
insert_range(std::forward<_Range>(__rg));
|
|
315
319
|
}
|
|
316
320
|
|
|
317
321
|
template <_ContainerCompatibleRange<value_type> _Range, class _Allocator>
|
|
318
322
|
requires __allocator_ctor_constraint<_Allocator>
|
|
319
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
323
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
324
|
+
flat_multimap(from_range_t, _Range&& __rg, const key_compare& __comp, const _Allocator& __alloc)
|
|
320
325
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc, __comp) {
|
|
321
326
|
insert_range(std::forward<_Range>(__rg));
|
|
322
327
|
}
|
|
323
328
|
|
|
324
329
|
template <class _InputIterator>
|
|
325
330
|
requires __has_input_iterator_category<_InputIterator>::value
|
|
326
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(
|
|
331
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
327
332
|
sorted_equivalent_t, _InputIterator __first, _InputIterator __last, const key_compare& __comp = key_compare())
|
|
328
333
|
: __containers_(), __compare_(__comp) {
|
|
329
334
|
insert(sorted_equivalent, __first, __last);
|
|
330
335
|
}
|
|
331
336
|
template <class _InputIterator, class _Allocator>
|
|
332
337
|
requires(__has_input_iterator_category<_InputIterator>::value && __allocator_ctor_constraint<_Allocator>)
|
|
333
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
338
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
339
|
+
sorted_equivalent_t,
|
|
340
|
+
_InputIterator __first,
|
|
341
|
+
_InputIterator __last,
|
|
342
|
+
const key_compare& __comp,
|
|
343
|
+
const _Allocator& __alloc)
|
|
339
344
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc, __comp) {
|
|
340
345
|
insert(sorted_equivalent, __first, __last);
|
|
341
346
|
}
|
|
342
347
|
|
|
343
348
|
template <class _InputIterator, class _Allocator>
|
|
344
349
|
requires(__has_input_iterator_category<_InputIterator>::value && __allocator_ctor_constraint<_Allocator>)
|
|
345
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
350
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
346
351
|
flat_multimap(sorted_equivalent_t, _InputIterator __first, _InputIterator __last, const _Allocator& __alloc)
|
|
347
352
|
: flat_multimap(__ctor_uses_allocator_empty_tag{}, __alloc) {
|
|
348
353
|
insert(sorted_equivalent, __first, __last);
|
|
349
354
|
}
|
|
350
355
|
|
|
351
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
356
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
357
|
+
flat_multimap(initializer_list<value_type> __il, const key_compare& __comp = key_compare())
|
|
352
358
|
: flat_multimap(__il.begin(), __il.end(), __comp) {}
|
|
353
359
|
|
|
354
360
|
template <class _Allocator>
|
|
355
361
|
requires __allocator_ctor_constraint<_Allocator>
|
|
356
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
362
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
357
363
|
flat_multimap(initializer_list<value_type> __il, const key_compare& __comp, const _Allocator& __alloc)
|
|
358
364
|
: flat_multimap(__il.begin(), __il.end(), __comp, __alloc) {}
|
|
359
365
|
|
|
360
366
|
template <class _Allocator>
|
|
361
367
|
requires __allocator_ctor_constraint<_Allocator>
|
|
362
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
368
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
369
|
+
flat_multimap(initializer_list<value_type> __il, const _Allocator& __alloc)
|
|
363
370
|
: flat_multimap(__il.begin(), __il.end(), __alloc) {}
|
|
364
371
|
|
|
365
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
372
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
366
373
|
flat_multimap(sorted_equivalent_t, initializer_list<value_type> __il, const key_compare& __comp = key_compare())
|
|
367
374
|
: flat_multimap(sorted_equivalent, __il.begin(), __il.end(), __comp) {}
|
|
368
375
|
|
|
369
376
|
template <class _Allocator>
|
|
370
377
|
requires __allocator_ctor_constraint<_Allocator>
|
|
371
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap(
|
|
378
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
372
379
|
sorted_equivalent_t, initializer_list<value_type> __il, const key_compare& __comp, const _Allocator& __alloc)
|
|
373
380
|
: flat_multimap(sorted_equivalent, __il.begin(), __il.end(), __comp, __alloc) {}
|
|
374
381
|
|
|
375
382
|
template <class _Allocator>
|
|
376
383
|
requires __allocator_ctor_constraint<_Allocator>
|
|
377
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
384
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
385
|
+
flat_multimap(sorted_equivalent_t, initializer_list<value_type> __il, const _Allocator& __alloc)
|
|
378
386
|
: flat_multimap(sorted_equivalent, __il.begin(), __il.end(), __alloc) {}
|
|
379
387
|
|
|
380
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap& operator=(initializer_list<value_type> __il) {
|
|
388
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap& operator=(initializer_list<value_type> __il) {
|
|
381
389
|
clear();
|
|
382
390
|
insert(__il);
|
|
383
391
|
return *this;
|
|
@@ -386,9 +394,9 @@ public:
|
|
|
386
394
|
// copy/move assignment are not specified in the spec (defaulted)
|
|
387
395
|
// but move assignment can potentially leave moved from object in an inconsistent
|
|
388
396
|
// state if an exception is thrown
|
|
389
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap& operator=(const flat_multimap&) = default;
|
|
397
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap& operator=(const flat_multimap&) = default;
|
|
390
398
|
|
|
391
|
-
_LIBCPP_HIDE_FROM_ABI flat_multimap& operator=(flat_multimap&& __other) noexcept(
|
|
399
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap& operator=(flat_multimap&& __other) noexcept(
|
|
392
400
|
is_nothrow_move_assignable_v<_KeyContainer> && is_nothrow_move_assignable_v<_MappedContainer> &&
|
|
393
401
|
is_nothrow_move_assignable_v<_Compare>) {
|
|
394
402
|
auto __clear_other_guard = std::__make_scope_guard([&]() noexcept { __other.clear() /* noexcept */; });
|
|
@@ -400,38 +408,58 @@ public:
|
|
|
400
408
|
}
|
|
401
409
|
|
|
402
410
|
// iterators
|
|
403
|
-
_LIBCPP_HIDE_FROM_ABI iterator begin() noexcept {
|
|
411
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator begin() noexcept {
|
|
404
412
|
return iterator(__containers_.keys.begin(), __containers_.values.begin());
|
|
405
413
|
}
|
|
406
414
|
|
|
407
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator begin() const noexcept {
|
|
415
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator begin() const noexcept {
|
|
408
416
|
return const_iterator(__containers_.keys.begin(), __containers_.values.begin());
|
|
409
417
|
}
|
|
410
418
|
|
|
411
|
-
_LIBCPP_HIDE_FROM_ABI iterator end() noexcept {
|
|
419
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator end() noexcept {
|
|
412
420
|
return iterator(__containers_.keys.end(), __containers_.values.end());
|
|
413
421
|
}
|
|
414
422
|
|
|
415
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator end() const noexcept {
|
|
423
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator end() const noexcept {
|
|
416
424
|
return const_iterator(__containers_.keys.end(), __containers_.values.end());
|
|
417
425
|
}
|
|
418
426
|
|
|
419
|
-
_LIBCPP_HIDE_FROM_ABI reverse_iterator rbegin() noexcept {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
_LIBCPP_HIDE_FROM_ABI const_reverse_iterator
|
|
427
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rbegin() noexcept {
|
|
428
|
+
return reverse_iterator(end());
|
|
429
|
+
}
|
|
430
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rbegin() const noexcept {
|
|
431
|
+
return const_reverse_iterator(end());
|
|
432
|
+
}
|
|
433
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 reverse_iterator rend() noexcept {
|
|
434
|
+
return reverse_iterator(begin());
|
|
435
|
+
}
|
|
436
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator rend() const noexcept {
|
|
437
|
+
return const_reverse_iterator(begin());
|
|
438
|
+
}
|
|
423
439
|
|
|
424
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const noexcept {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
440
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator cbegin() const noexcept {
|
|
441
|
+
return begin();
|
|
442
|
+
}
|
|
443
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator cend() const noexcept {
|
|
444
|
+
return end();
|
|
445
|
+
}
|
|
446
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crbegin() const noexcept {
|
|
447
|
+
return const_reverse_iterator(end());
|
|
448
|
+
}
|
|
449
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_reverse_iterator crend() const noexcept {
|
|
450
|
+
return const_reverse_iterator(begin());
|
|
451
|
+
}
|
|
428
452
|
|
|
429
453
|
// [flat.map.capacity], capacity
|
|
430
|
-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI bool empty() const noexcept {
|
|
454
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool empty() const noexcept {
|
|
455
|
+
return __containers_.keys.empty();
|
|
456
|
+
}
|
|
431
457
|
|
|
432
|
-
_LIBCPP_HIDE_FROM_ABI size_type size() const noexcept {
|
|
458
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type size() const noexcept {
|
|
459
|
+
return __containers_.keys.size();
|
|
460
|
+
}
|
|
433
461
|
|
|
434
|
-
_LIBCPP_HIDE_FROM_ABI size_type max_size() const noexcept {
|
|
462
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type max_size() const noexcept {
|
|
435
463
|
return std::min<size_type>(__containers_.keys.max_size(), __containers_.values.max_size());
|
|
436
464
|
}
|
|
437
465
|
|
|
@@ -439,7 +467,7 @@ public:
|
|
|
439
467
|
template <class... _Args>
|
|
440
468
|
requires is_constructible_v<pair<key_type, mapped_type>, _Args...> && is_move_constructible_v<key_type> &&
|
|
441
469
|
is_move_constructible_v<mapped_type>
|
|
442
|
-
_LIBCPP_HIDE_FROM_ABI iterator emplace(_Args&&... __args) {
|
|
470
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator emplace(_Args&&... __args) {
|
|
443
471
|
std::pair<key_type, mapped_type> __pair(std::forward<_Args>(__args)...);
|
|
444
472
|
auto __key_it = std::upper_bound(__containers_.keys.begin(), __containers_.keys.end(), __pair.first, __compare_);
|
|
445
473
|
auto __mapped_it = __corresponding_mapped_it(*this, __key_it);
|
|
@@ -450,7 +478,7 @@ public:
|
|
|
450
478
|
|
|
451
479
|
template <class... _Args>
|
|
452
480
|
requires is_constructible_v<pair<key_type, mapped_type>, _Args...>
|
|
453
|
-
_LIBCPP_HIDE_FROM_ABI iterator emplace_hint(const_iterator __hint, _Args&&... __args) {
|
|
481
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator emplace_hint(const_iterator __hint, _Args&&... __args) {
|
|
454
482
|
std::pair<key_type, mapped_type> __pair(std::forward<_Args>(__args)...);
|
|
455
483
|
|
|
456
484
|
auto __prev_larger = __hint != cbegin() && __compare_(__pair.first, (__hint - 1)->first);
|
|
@@ -490,33 +518,35 @@ public:
|
|
|
490
518
|
*this, __key_iter, __mapped_iter, std::move(__pair.first), std::move(__pair.second));
|
|
491
519
|
}
|
|
492
520
|
|
|
493
|
-
_LIBCPP_HIDE_FROM_ABI iterator insert(const value_type& __x) { return emplace(__x); }
|
|
521
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(const value_type& __x) { return emplace(__x); }
|
|
494
522
|
|
|
495
|
-
_LIBCPP_HIDE_FROM_ABI iterator insert(value_type&& __x) {
|
|
523
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(value_type&& __x) {
|
|
524
|
+
return emplace(std::move(__x));
|
|
525
|
+
}
|
|
496
526
|
|
|
497
|
-
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, const value_type& __x) {
|
|
527
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(const_iterator __hint, const value_type& __x) {
|
|
498
528
|
return emplace_hint(__hint, __x);
|
|
499
529
|
}
|
|
500
530
|
|
|
501
|
-
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, value_type&& __x) {
|
|
531
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(const_iterator __hint, value_type&& __x) {
|
|
502
532
|
return emplace_hint(__hint, std::move(__x));
|
|
503
533
|
}
|
|
504
534
|
|
|
505
535
|
template <class _PairLike>
|
|
506
536
|
requires is_constructible_v<pair<key_type, mapped_type>, _PairLike>
|
|
507
|
-
_LIBCPP_HIDE_FROM_ABI iterator insert(_PairLike&& __x) {
|
|
537
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(_PairLike&& __x) {
|
|
508
538
|
return emplace(std::forward<_PairLike>(__x));
|
|
509
539
|
}
|
|
510
540
|
|
|
511
541
|
template <class _PairLike>
|
|
512
542
|
requires is_constructible_v<pair<key_type, mapped_type>, _PairLike>
|
|
513
|
-
_LIBCPP_HIDE_FROM_ABI iterator insert(const_iterator __hint, _PairLike&& __x) {
|
|
543
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert(const_iterator __hint, _PairLike&& __x) {
|
|
514
544
|
return emplace_hint(__hint, std::forward<_PairLike>(__x));
|
|
515
545
|
}
|
|
516
546
|
|
|
517
547
|
template <class _InputIterator>
|
|
518
548
|
requires __has_input_iterator_category<_InputIterator>::value
|
|
519
|
-
_LIBCPP_HIDE_FROM_ABI void insert(_InputIterator __first, _InputIterator __last) {
|
|
549
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert(_InputIterator __first, _InputIterator __last) {
|
|
520
550
|
if constexpr (sized_sentinel_for<_InputIterator, _InputIterator>) {
|
|
521
551
|
__reserve(__last - __first);
|
|
522
552
|
}
|
|
@@ -525,7 +555,8 @@ public:
|
|
|
525
555
|
|
|
526
556
|
template <class _InputIterator>
|
|
527
557
|
requires __has_input_iterator_category<_InputIterator>::value
|
|
528
|
-
_LIBCPP_HIDE_FROM_ABI void
|
|
558
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
|
|
559
|
+
insert(sorted_equivalent_t, _InputIterator __first, _InputIterator __last) {
|
|
529
560
|
if constexpr (sized_sentinel_for<_InputIterator, _InputIterator>) {
|
|
530
561
|
__reserve(__last - __first);
|
|
531
562
|
}
|
|
@@ -534,7 +565,7 @@ public:
|
|
|
534
565
|
}
|
|
535
566
|
|
|
536
567
|
template <_ContainerCompatibleRange<value_type> _Range>
|
|
537
|
-
_LIBCPP_HIDE_FROM_ABI void insert_range(_Range&& __range) {
|
|
568
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert_range(_Range&& __range) {
|
|
538
569
|
if constexpr (ranges::sized_range<_Range>) {
|
|
539
570
|
__reserve(ranges::size(__range));
|
|
540
571
|
}
|
|
@@ -542,19 +573,32 @@ public:
|
|
|
542
573
|
__append_sort_merge</*WasSorted = */ false>(ranges::begin(__range), ranges::end(__range));
|
|
543
574
|
}
|
|
544
575
|
|
|
545
|
-
|
|
576
|
+
template <_ContainerCompatibleRange<value_type> _Range>
|
|
577
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert_range(sorted_equivalent_t, _Range&& __range) {
|
|
578
|
+
if constexpr (ranges::sized_range<_Range>) {
|
|
579
|
+
__reserve(ranges::size(__range));
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
__append_sort_merge</*WasSorted = */ true>(ranges::begin(__range), ranges::end(__range));
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert(initializer_list<value_type> __il) {
|
|
586
|
+
insert(__il.begin(), __il.end());
|
|
587
|
+
}
|
|
546
588
|
|
|
547
|
-
_LIBCPP_HIDE_FROM_ABI void
|
|
589
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
|
|
590
|
+
insert(sorted_equivalent_t, initializer_list<value_type> __il) {
|
|
548
591
|
insert(sorted_equivalent, __il.begin(), __il.end());
|
|
549
592
|
}
|
|
550
593
|
|
|
551
|
-
_LIBCPP_HIDE_FROM_ABI containers extract() && {
|
|
594
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 containers extract() && {
|
|
552
595
|
auto __guard = std::__make_scope_guard([&]() noexcept { clear() /* noexcept */; });
|
|
553
596
|
auto __ret = std::move(__containers_);
|
|
554
597
|
return __ret;
|
|
555
598
|
}
|
|
556
599
|
|
|
557
|
-
_LIBCPP_HIDE_FROM_ABI void
|
|
600
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
|
|
601
|
+
replace(key_container_type&& __key_cont, mapped_container_type&& __mapped_cont) {
|
|
558
602
|
_LIBCPP_ASSERT_VALID_INPUT_RANGE(
|
|
559
603
|
__key_cont.size() == __mapped_cont.size(), "flat_multimap keys and mapped containers have different size");
|
|
560
604
|
|
|
@@ -565,15 +609,15 @@ public:
|
|
|
565
609
|
__guard.__complete();
|
|
566
610
|
}
|
|
567
611
|
|
|
568
|
-
_LIBCPP_HIDE_FROM_ABI iterator erase(iterator __position) {
|
|
612
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase(iterator __position) {
|
|
569
613
|
return __erase(__position.__key_iter_, __position.__mapped_iter_);
|
|
570
614
|
}
|
|
571
615
|
|
|
572
|
-
_LIBCPP_HIDE_FROM_ABI iterator erase(const_iterator __position) {
|
|
616
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase(const_iterator __position) {
|
|
573
617
|
return __erase(__position.__key_iter_, __position.__mapped_iter_);
|
|
574
618
|
}
|
|
575
619
|
|
|
576
|
-
_LIBCPP_HIDE_FROM_ABI size_type erase(const key_type& __x) {
|
|
620
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type erase(const key_type& __x) {
|
|
577
621
|
auto [__first, __last] = equal_range(__x);
|
|
578
622
|
auto __res = __last - __first;
|
|
579
623
|
erase(__first, __last);
|
|
@@ -583,14 +627,14 @@ public:
|
|
|
583
627
|
template <class _Kp>
|
|
584
628
|
requires(__is_compare_transparent && !is_convertible_v<_Kp &&, iterator> &&
|
|
585
629
|
!is_convertible_v<_Kp &&, const_iterator>)
|
|
586
|
-
_LIBCPP_HIDE_FROM_ABI size_type erase(_Kp&& __x) {
|
|
630
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type erase(_Kp&& __x) {
|
|
587
631
|
auto [__first, __last] = equal_range(__x);
|
|
588
632
|
auto __res = __last - __first;
|
|
589
633
|
erase(__first, __last);
|
|
590
634
|
return __res;
|
|
591
635
|
}
|
|
592
636
|
|
|
593
|
-
_LIBCPP_HIDE_FROM_ABI iterator erase(const_iterator __first, const_iterator __last) {
|
|
637
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase(const_iterator __first, const_iterator __last) {
|
|
594
638
|
auto __on_failure = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
|
|
595
639
|
auto __key_it = __containers_.keys.erase(__first.__key_iter_, __last.__key_iter_);
|
|
596
640
|
auto __mapped_it = __containers_.values.erase(__first.__mapped_iter_, __last.__mapped_iter_);
|
|
@@ -598,146 +642,178 @@ public:
|
|
|
598
642
|
return iterator(std::move(__key_it), std::move(__mapped_it));
|
|
599
643
|
}
|
|
600
644
|
|
|
601
|
-
_LIBCPP_HIDE_FROM_ABI void swap(flat_multimap& __y) noexcept
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
645
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void swap(flat_multimap& __y) noexcept(
|
|
646
|
+
is_nothrow_swappable_v<key_container_type> && is_nothrow_swappable_v<mapped_container_type> &&
|
|
647
|
+
is_nothrow_swappable_v<key_compare>) {
|
|
648
|
+
auto __on_failure = std::__make_exception_guard([&]() noexcept {
|
|
649
|
+
clear() /* noexcept */;
|
|
650
|
+
__y.clear() /* noexcept */;
|
|
651
|
+
});
|
|
605
652
|
ranges::swap(__compare_, __y.__compare_);
|
|
606
653
|
ranges::swap(__containers_.keys, __y.__containers_.keys);
|
|
607
654
|
ranges::swap(__containers_.values, __y.__containers_.values);
|
|
655
|
+
__on_failure.__complete();
|
|
608
656
|
}
|
|
609
657
|
|
|
610
|
-
_LIBCPP_HIDE_FROM_ABI void clear() noexcept {
|
|
658
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void clear() noexcept {
|
|
611
659
|
__containers_.keys.clear();
|
|
612
660
|
__containers_.values.clear();
|
|
613
661
|
}
|
|
614
662
|
|
|
615
663
|
// observers
|
|
616
|
-
_LIBCPP_HIDE_FROM_ABI key_compare key_comp() const { return __compare_; }
|
|
617
|
-
_LIBCPP_HIDE_FROM_ABI value_compare value_comp() const {
|
|
664
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 key_compare key_comp() const { return __compare_; }
|
|
665
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 value_compare value_comp() const {
|
|
666
|
+
return value_compare(__compare_);
|
|
667
|
+
}
|
|
618
668
|
|
|
619
|
-
_LIBCPP_HIDE_FROM_ABI const key_container_type& keys() const noexcept {
|
|
620
|
-
|
|
669
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const key_container_type& keys() const noexcept {
|
|
670
|
+
return __containers_.keys;
|
|
671
|
+
}
|
|
672
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const mapped_container_type&
|
|
673
|
+
values() const noexcept {
|
|
674
|
+
return __containers_.values;
|
|
675
|
+
}
|
|
621
676
|
|
|
622
677
|
// map operations
|
|
623
|
-
_LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __x) {
|
|
678
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find(const key_type& __x) {
|
|
679
|
+
return __find_impl(*this, __x);
|
|
680
|
+
}
|
|
624
681
|
|
|
625
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __x) const {
|
|
682
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find(const key_type& __x) const {
|
|
683
|
+
return __find_impl(*this, __x);
|
|
684
|
+
}
|
|
626
685
|
|
|
627
686
|
template <class _Kp>
|
|
628
687
|
requires __is_compare_transparent
|
|
629
|
-
_LIBCPP_HIDE_FROM_ABI iterator find(const _Kp& __x) {
|
|
688
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find(const _Kp& __x) {
|
|
630
689
|
return __find_impl(*this, __x);
|
|
631
690
|
}
|
|
632
691
|
|
|
633
692
|
template <class _Kp>
|
|
634
693
|
requires __is_compare_transparent
|
|
635
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const _Kp& __x) const {
|
|
694
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find(const _Kp& __x) const {
|
|
636
695
|
return __find_impl(*this, __x);
|
|
637
696
|
}
|
|
638
697
|
|
|
639
|
-
_LIBCPP_HIDE_FROM_ABI size_type count(const key_type& __x) const {
|
|
698
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type count(const key_type& __x) const {
|
|
640
699
|
auto [__first, __last] = equal_range(__x);
|
|
641
700
|
return __last - __first;
|
|
642
701
|
}
|
|
643
702
|
|
|
644
703
|
template <class _Kp>
|
|
645
704
|
requires __is_compare_transparent
|
|
646
|
-
_LIBCPP_HIDE_FROM_ABI size_type count(const _Kp& __x) const {
|
|
705
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type count(const _Kp& __x) const {
|
|
647
706
|
auto [__first, __last] = equal_range(__x);
|
|
648
707
|
return __last - __first;
|
|
649
708
|
}
|
|
650
709
|
|
|
651
|
-
_LIBCPP_HIDE_FROM_ABI bool contains(const key_type& __x) const {
|
|
710
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains(const key_type& __x) const {
|
|
711
|
+
return find(__x) != end();
|
|
712
|
+
}
|
|
652
713
|
|
|
653
714
|
template <class _Kp>
|
|
654
715
|
requires __is_compare_transparent
|
|
655
|
-
_LIBCPP_HIDE_FROM_ABI bool contains(const _Kp& __x) const {
|
|
716
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains(const _Kp& __x) const {
|
|
656
717
|
return find(__x) != end();
|
|
657
718
|
}
|
|
658
719
|
|
|
659
|
-
_LIBCPP_HIDE_FROM_ABI iterator lower_bound(const key_type& __x) {
|
|
720
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator lower_bound(const key_type& __x) {
|
|
721
|
+
return __lower_bound<iterator>(*this, __x);
|
|
722
|
+
}
|
|
660
723
|
|
|
661
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator
|
|
724
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator
|
|
725
|
+
lower_bound(const key_type& __x) const {
|
|
662
726
|
return __lower_bound<const_iterator>(*this, __x);
|
|
663
727
|
}
|
|
664
728
|
|
|
665
729
|
template <class _Kp>
|
|
666
730
|
requires __is_compare_transparent
|
|
667
|
-
_LIBCPP_HIDE_FROM_ABI iterator lower_bound(const _Kp& __x) {
|
|
731
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator lower_bound(const _Kp& __x) {
|
|
668
732
|
return __lower_bound<iterator>(*this, __x);
|
|
669
733
|
}
|
|
670
734
|
|
|
671
735
|
template <class _Kp>
|
|
672
736
|
requires __is_compare_transparent
|
|
673
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator lower_bound(const _Kp& __x) const {
|
|
737
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator lower_bound(const _Kp& __x) const {
|
|
674
738
|
return __lower_bound<const_iterator>(*this, __x);
|
|
675
739
|
}
|
|
676
740
|
|
|
677
|
-
_LIBCPP_HIDE_FROM_ABI iterator upper_bound(const key_type& __x) {
|
|
741
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator upper_bound(const key_type& __x) {
|
|
742
|
+
return __upper_bound<iterator>(*this, __x);
|
|
743
|
+
}
|
|
678
744
|
|
|
679
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator
|
|
745
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator
|
|
746
|
+
upper_bound(const key_type& __x) const {
|
|
680
747
|
return __upper_bound<const_iterator>(*this, __x);
|
|
681
748
|
}
|
|
682
749
|
|
|
683
750
|
template <class _Kp>
|
|
684
751
|
requires __is_compare_transparent
|
|
685
|
-
_LIBCPP_HIDE_FROM_ABI iterator upper_bound(const _Kp& __x) {
|
|
752
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator upper_bound(const _Kp& __x) {
|
|
686
753
|
return __upper_bound<iterator>(*this, __x);
|
|
687
754
|
}
|
|
688
755
|
|
|
689
756
|
template <class _Kp>
|
|
690
757
|
requires __is_compare_transparent
|
|
691
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator upper_bound(const _Kp& __x) const {
|
|
758
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator upper_bound(const _Kp& __x) const {
|
|
692
759
|
return __upper_bound<const_iterator>(*this, __x);
|
|
693
760
|
}
|
|
694
761
|
|
|
695
|
-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator>
|
|
762
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<iterator, iterator>
|
|
763
|
+
equal_range(const key_type& __x) {
|
|
696
764
|
return __equal_range_impl(*this, __x);
|
|
697
765
|
}
|
|
698
766
|
|
|
699
|
-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator>
|
|
767
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
|
|
768
|
+
equal_range(const key_type& __x) const {
|
|
700
769
|
return __equal_range_impl(*this, __x);
|
|
701
770
|
}
|
|
702
771
|
|
|
703
772
|
template <class _Kp>
|
|
704
773
|
requires __is_compare_transparent
|
|
705
|
-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator>
|
|
774
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<iterator, iterator>
|
|
775
|
+
equal_range(const _Kp& __x) {
|
|
706
776
|
return __equal_range_impl(*this, __x);
|
|
707
777
|
}
|
|
708
778
|
template <class _Kp>
|
|
709
779
|
requires __is_compare_transparent
|
|
710
|
-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator>
|
|
780
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
|
|
781
|
+
equal_range(const _Kp& __x) const {
|
|
711
782
|
return __equal_range_impl(*this, __x);
|
|
712
783
|
}
|
|
713
784
|
|
|
714
|
-
friend _LIBCPP_HIDE_FROM_ABI bool
|
|
785
|
+
friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool
|
|
786
|
+
operator==(const flat_multimap& __x, const flat_multimap& __y) {
|
|
715
787
|
return ranges::equal(__x, __y);
|
|
716
788
|
}
|
|
717
789
|
|
|
718
|
-
friend _LIBCPP_HIDE_FROM_ABI auto
|
|
790
|
+
friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 auto
|
|
791
|
+
operator<=>(const flat_multimap& __x, const flat_multimap& __y) {
|
|
719
792
|
return std::lexicographical_compare_three_way(
|
|
720
793
|
__x.begin(), __x.end(), __y.begin(), __y.end(), std::__synth_three_way);
|
|
721
794
|
}
|
|
722
795
|
|
|
723
|
-
friend _LIBCPP_HIDE_FROM_ABI void
|
|
796
|
+
friend _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
|
|
797
|
+
swap(flat_multimap& __x, flat_multimap& __y) noexcept(noexcept(__x.swap(__y))) {
|
|
798
|
+
__x.swap(__y);
|
|
799
|
+
}
|
|
724
800
|
|
|
725
801
|
private:
|
|
726
802
|
struct __ctor_uses_allocator_tag {
|
|
727
|
-
explicit _LIBCPP_HIDE_FROM_ABI __ctor_uses_allocator_tag() = default;
|
|
803
|
+
explicit _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __ctor_uses_allocator_tag() = default;
|
|
728
804
|
};
|
|
729
805
|
struct __ctor_uses_allocator_empty_tag {
|
|
730
|
-
explicit _LIBCPP_HIDE_FROM_ABI __ctor_uses_allocator_empty_tag() = default;
|
|
806
|
+
explicit _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __ctor_uses_allocator_empty_tag() = default;
|
|
731
807
|
};
|
|
732
808
|
|
|
733
809
|
template <class _Allocator, class _KeyCont, class _MappedCont, class... _CompArg>
|
|
734
810
|
requires __allocator_ctor_constraint<_Allocator>
|
|
735
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
811
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 flat_multimap(
|
|
812
|
+
__ctor_uses_allocator_tag,
|
|
813
|
+
const _Allocator& __alloc,
|
|
814
|
+
_KeyCont&& __key_cont,
|
|
815
|
+
_MappedCont&& __mapped_cont,
|
|
816
|
+
_CompArg&&... __comp)
|
|
741
817
|
: __containers_{.keys = std::make_obj_using_allocator<key_container_type>(
|
|
742
818
|
__alloc, std::forward<_KeyCont>(__key_cont)),
|
|
743
819
|
.values = std::make_obj_using_allocator<mapped_container_type>(
|
|
@@ -746,36 +822,39 @@ private:
|
|
|
746
822
|
|
|
747
823
|
template <class _Allocator, class... _CompArg>
|
|
748
824
|
requires __allocator_ctor_constraint<_Allocator>
|
|
749
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
825
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
826
|
+
flat_multimap(__ctor_uses_allocator_empty_tag, const _Allocator& __alloc, _CompArg&&... __comp)
|
|
750
827
|
: __containers_{.keys = std::make_obj_using_allocator<key_container_type>(__alloc),
|
|
751
828
|
.values = std::make_obj_using_allocator<mapped_container_type>(__alloc)},
|
|
752
829
|
__compare_(std::forward<_CompArg>(__comp)...) {}
|
|
753
830
|
|
|
754
|
-
_LIBCPP_HIDE_FROM_ABI bool __is_sorted(auto&& __key_container) const {
|
|
831
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool __is_sorted(auto&& __key_container) const {
|
|
755
832
|
return ranges::is_sorted(__key_container, __compare_);
|
|
756
833
|
}
|
|
757
834
|
|
|
758
|
-
_LIBCPP_HIDE_FROM_ABI void __sort() {
|
|
835
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __sort() {
|
|
759
836
|
auto __zv = ranges::views::zip(__containers_.keys, __containers_.values);
|
|
760
837
|
ranges::sort(__zv, __compare_, [](const auto& __p) -> decltype(auto) { return std::get<0>(__p); });
|
|
761
838
|
}
|
|
762
839
|
|
|
763
840
|
template <class _Self, class _KeyIter>
|
|
764
|
-
_LIBCPP_HIDE_FROM_ABI static auto
|
|
841
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 static auto
|
|
842
|
+
__corresponding_mapped_it(_Self&& __self, _KeyIter&& __key_iter) {
|
|
765
843
|
return __self.__containers_.values.begin() +
|
|
766
844
|
static_cast<ranges::range_difference_t<mapped_container_type>>(
|
|
767
845
|
ranges::distance(__self.__containers_.keys.begin(), __key_iter));
|
|
768
846
|
}
|
|
769
847
|
|
|
770
848
|
template <bool _WasSorted, class _InputIterator, class _Sentinel>
|
|
771
|
-
_LIBCPP_HIDE_FROM_ABI void
|
|
849
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
|
|
850
|
+
__append_sort_merge(_InputIterator __first, _Sentinel __last) {
|
|
772
851
|
auto __on_failure = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
|
|
773
852
|
size_t __num_appended = __flat_map_utils::__append(*this, std::move(__first), std::move(__last));
|
|
774
853
|
if (__num_appended != 0) {
|
|
775
854
|
auto __zv = ranges::views::zip(__containers_.keys, __containers_.values);
|
|
776
855
|
auto __append_start_offset = __containers_.keys.size() - __num_appended;
|
|
777
856
|
auto __end = __zv.end();
|
|
778
|
-
auto __compare_key = [this](const auto& __p1, const auto& __p2) {
|
|
857
|
+
auto __compare_key = [this](const auto& __p1, const auto& __p2) -> bool {
|
|
779
858
|
return __compare_(std::get<0>(__p1), std::get<0>(__p2));
|
|
780
859
|
};
|
|
781
860
|
if constexpr (!_WasSorted) {
|
|
@@ -791,7 +870,7 @@ private:
|
|
|
791
870
|
}
|
|
792
871
|
|
|
793
872
|
template <class _Self, class _Kp>
|
|
794
|
-
_LIBCPP_HIDE_FROM_ABI static auto __find_impl(_Self&& __self, const _Kp& __key) {
|
|
873
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 static auto __find_impl(_Self&& __self, const _Kp& __key) {
|
|
795
874
|
auto __it = __self.lower_bound(__key);
|
|
796
875
|
auto __last = __self.end();
|
|
797
876
|
if (__it == __last || __self.__compare_(__key, __it->first)) {
|
|
@@ -801,7 +880,7 @@ private:
|
|
|
801
880
|
}
|
|
802
881
|
|
|
803
882
|
template <class _Self, class _Kp>
|
|
804
|
-
_LIBCPP_HIDE_FROM_ABI static auto __equal_range_impl(_Self&& __self, const _Kp& __key) {
|
|
883
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 static auto __equal_range_impl(_Self&& __self, const _Kp& __key) {
|
|
805
884
|
auto [__key_first, __key_last] =
|
|
806
885
|
std::equal_range(__self.__containers_.keys.begin(), __self.__containers_.keys.end(), __key, __self.__compare_);
|
|
807
886
|
|
|
@@ -811,7 +890,7 @@ private:
|
|
|
811
890
|
}
|
|
812
891
|
|
|
813
892
|
template <class _Res, class _Self, class _Kp>
|
|
814
|
-
_LIBCPP_HIDE_FROM_ABI static _Res __lower_bound(_Self&& __self, _Kp& __x) {
|
|
893
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 static _Res __lower_bound(_Self&& __self, _Kp& __x) {
|
|
815
894
|
auto __key_iter =
|
|
816
895
|
std::lower_bound(__self.__containers_.keys.begin(), __self.__containers_.keys.end(), __x, __self.__compare_);
|
|
817
896
|
auto __mapped_iter = __corresponding_mapped_it(__self, __key_iter);
|
|
@@ -819,14 +898,14 @@ private:
|
|
|
819
898
|
}
|
|
820
899
|
|
|
821
900
|
template <class _Res, class _Self, class _Kp>
|
|
822
|
-
_LIBCPP_HIDE_FROM_ABI static _Res __upper_bound(_Self&& __self, _Kp& __x) {
|
|
901
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 static _Res __upper_bound(_Self&& __self, _Kp& __x) {
|
|
823
902
|
auto __key_iter =
|
|
824
903
|
std::upper_bound(__self.__containers_.keys.begin(), __self.__containers_.keys.end(), __x, __self.__compare_);
|
|
825
904
|
auto __mapped_iter = __corresponding_mapped_it(__self, __key_iter);
|
|
826
905
|
return _Res(std::move(__key_iter), std::move(__mapped_iter));
|
|
827
906
|
}
|
|
828
907
|
|
|
829
|
-
_LIBCPP_HIDE_FROM_ABI void __reserve(size_t __size) {
|
|
908
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void __reserve(size_t __size) {
|
|
830
909
|
if constexpr (__container_traits<_KeyContainer>::__reservable) {
|
|
831
910
|
__containers_.keys.reserve(__size);
|
|
832
911
|
}
|
|
@@ -837,7 +916,8 @@ private:
|
|
|
837
916
|
}
|
|
838
917
|
|
|
839
918
|
template <class _KIter, class _MIter>
|
|
840
|
-
_LIBCPP_HIDE_FROM_ABI iterator
|
|
919
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator
|
|
920
|
+
__erase(_KIter __key_iter_to_remove, _MIter __mapped_iter_to_remove) {
|
|
841
921
|
auto __on_failure = std::__make_exception_guard([&]() noexcept { clear() /* noexcept */; });
|
|
842
922
|
auto __key_iter = __containers_.keys.erase(__key_iter_to_remove);
|
|
843
923
|
auto __mapped_iter = __containers_.values.erase(__mapped_iter_to_remove);
|
|
@@ -847,7 +927,8 @@ private:
|
|
|
847
927
|
|
|
848
928
|
template <class _Key2, class _Tp2, class _Compare2, class _KeyContainer2, class _MappedContainer2, class _Predicate>
|
|
849
929
|
friend typename flat_multimap<_Key2, _Tp2, _Compare2, _KeyContainer2, _MappedContainer2>::size_type
|
|
850
|
-
|
|
930
|
+
_LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
931
|
+
erase_if(flat_multimap<_Key2, _Tp2, _Compare2, _KeyContainer2, _MappedContainer2>&, _Predicate);
|
|
851
932
|
|
|
852
933
|
friend __flat_map_utils;
|
|
853
934
|
|
|
@@ -855,8 +936,9 @@ private:
|
|
|
855
936
|
_LIBCPP_NO_UNIQUE_ADDRESS key_compare __compare_;
|
|
856
937
|
|
|
857
938
|
struct __key_equiv {
|
|
858
|
-
_LIBCPP_HIDE_FROM_ABI __key_equiv(key_compare __c) : __comp_(__c) {}
|
|
859
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
939
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_equiv(key_compare __c) : __comp_(__c) {}
|
|
940
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool
|
|
941
|
+
operator()(const_reference __x, const_reference __y) const {
|
|
860
942
|
return !__comp_(std::get<0>(__x), std::get<0>(__y)) && !__comp_(std::get<0>(__y), std::get<0>(__x));
|
|
861
943
|
}
|
|
862
944
|
key_compare __comp_;
|
|
@@ -864,8 +946,7 @@ private:
|
|
|
864
946
|
};
|
|
865
947
|
|
|
866
948
|
template <class _KeyContainer, class _MappedContainer, class _Compare = less<typename _KeyContainer::value_type>>
|
|
867
|
-
requires(!
|
|
868
|
-
!__is_allocator<_MappedContainer>::value &&
|
|
949
|
+
requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> && !__is_allocator_v<_MappedContainer> &&
|
|
869
950
|
is_invocable_v<const _Compare&,
|
|
870
951
|
const typename _KeyContainer::value_type&,
|
|
871
952
|
const typename _KeyContainer::value_type&>)
|
|
@@ -878,7 +959,7 @@ flat_multimap(_KeyContainer, _MappedContainer, _Compare = _Compare())
|
|
|
878
959
|
|
|
879
960
|
template <class _KeyContainer, class _MappedContainer, class _Allocator>
|
|
880
961
|
requires(uses_allocator_v<_KeyContainer, _Allocator> && uses_allocator_v<_MappedContainer, _Allocator> &&
|
|
881
|
-
!
|
|
962
|
+
!__is_allocator_v<_KeyContainer> && !__is_allocator_v<_MappedContainer>)
|
|
882
963
|
flat_multimap(_KeyContainer, _MappedContainer, _Allocator)
|
|
883
964
|
-> flat_multimap<typename _KeyContainer::value_type,
|
|
884
965
|
typename _MappedContainer::value_type,
|
|
@@ -887,9 +968,8 @@ flat_multimap(_KeyContainer, _MappedContainer, _Allocator)
|
|
|
887
968
|
_MappedContainer>;
|
|
888
969
|
|
|
889
970
|
template <class _KeyContainer, class _MappedContainer, class _Compare, class _Allocator>
|
|
890
|
-
requires(!
|
|
891
|
-
|
|
892
|
-
uses_allocator_v<_MappedContainer, _Allocator> &&
|
|
971
|
+
requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> && !__is_allocator_v<_MappedContainer> &&
|
|
972
|
+
uses_allocator_v<_KeyContainer, _Allocator> && uses_allocator_v<_MappedContainer, _Allocator> &&
|
|
893
973
|
is_invocable_v<const _Compare&,
|
|
894
974
|
const typename _KeyContainer::value_type&,
|
|
895
975
|
const typename _KeyContainer::value_type&>)
|
|
@@ -901,8 +981,7 @@ flat_multimap(_KeyContainer, _MappedContainer, _Compare, _Allocator)
|
|
|
901
981
|
_MappedContainer>;
|
|
902
982
|
|
|
903
983
|
template <class _KeyContainer, class _MappedContainer, class _Compare = less<typename _KeyContainer::value_type>>
|
|
904
|
-
requires(!
|
|
905
|
-
!__is_allocator<_MappedContainer>::value &&
|
|
984
|
+
requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> && !__is_allocator_v<_MappedContainer> &&
|
|
906
985
|
is_invocable_v<const _Compare&,
|
|
907
986
|
const typename _KeyContainer::value_type&,
|
|
908
987
|
const typename _KeyContainer::value_type&>)
|
|
@@ -915,7 +994,7 @@ flat_multimap(sorted_equivalent_t, _KeyContainer, _MappedContainer, _Compare = _
|
|
|
915
994
|
|
|
916
995
|
template <class _KeyContainer, class _MappedContainer, class _Allocator>
|
|
917
996
|
requires(uses_allocator_v<_KeyContainer, _Allocator> && uses_allocator_v<_MappedContainer, _Allocator> &&
|
|
918
|
-
!
|
|
997
|
+
!__is_allocator_v<_KeyContainer> && !__is_allocator_v<_MappedContainer>)
|
|
919
998
|
flat_multimap(sorted_equivalent_t, _KeyContainer, _MappedContainer, _Allocator)
|
|
920
999
|
-> flat_multimap<typename _KeyContainer::value_type,
|
|
921
1000
|
typename _MappedContainer::value_type,
|
|
@@ -924,9 +1003,8 @@ flat_multimap(sorted_equivalent_t, _KeyContainer, _MappedContainer, _Allocator)
|
|
|
924
1003
|
_MappedContainer>;
|
|
925
1004
|
|
|
926
1005
|
template <class _KeyContainer, class _MappedContainer, class _Compare, class _Allocator>
|
|
927
|
-
requires(!
|
|
928
|
-
|
|
929
|
-
uses_allocator_v<_MappedContainer, _Allocator> &&
|
|
1006
|
+
requires(!__is_allocator_v<_Compare> && !__is_allocator_v<_KeyContainer> && !__is_allocator_v<_MappedContainer> &&
|
|
1007
|
+
uses_allocator_v<_KeyContainer, _Allocator> && uses_allocator_v<_MappedContainer, _Allocator> &&
|
|
930
1008
|
is_invocable_v<const _Compare&,
|
|
931
1009
|
const typename _KeyContainer::value_type&,
|
|
932
1010
|
const typename _KeyContainer::value_type&>)
|
|
@@ -938,19 +1016,19 @@ flat_multimap(sorted_equivalent_t, _KeyContainer, _MappedContainer, _Compare, _A
|
|
|
938
1016
|
_MappedContainer>;
|
|
939
1017
|
|
|
940
1018
|
template <class _InputIterator, class _Compare = less<__iter_key_type<_InputIterator>>>
|
|
941
|
-
requires(__has_input_iterator_category<_InputIterator>::value && !
|
|
1019
|
+
requires(__has_input_iterator_category<_InputIterator>::value && !__is_allocator_v<_Compare>)
|
|
942
1020
|
flat_multimap(_InputIterator, _InputIterator, _Compare = _Compare())
|
|
943
1021
|
-> flat_multimap<__iter_key_type<_InputIterator>, __iter_mapped_type<_InputIterator>, _Compare>;
|
|
944
1022
|
|
|
945
1023
|
template <class _InputIterator, class _Compare = less<__iter_key_type<_InputIterator>>>
|
|
946
|
-
requires(__has_input_iterator_category<_InputIterator>::value && !
|
|
1024
|
+
requires(__has_input_iterator_category<_InputIterator>::value && !__is_allocator_v<_Compare>)
|
|
947
1025
|
flat_multimap(sorted_equivalent_t, _InputIterator, _InputIterator, _Compare = _Compare())
|
|
948
1026
|
-> flat_multimap<__iter_key_type<_InputIterator>, __iter_mapped_type<_InputIterator>, _Compare>;
|
|
949
1027
|
|
|
950
1028
|
template <ranges::input_range _Range,
|
|
951
1029
|
class _Compare = less<__range_key_type<_Range>>,
|
|
952
1030
|
class _Allocator = allocator<byte>,
|
|
953
|
-
class = __enable_if_t<!
|
|
1031
|
+
class = __enable_if_t<!__is_allocator_v<_Compare> && __is_allocator_v<_Allocator>>>
|
|
954
1032
|
flat_multimap(from_range_t, _Range&&, _Compare = _Compare(), _Allocator = _Allocator()) -> flat_multimap<
|
|
955
1033
|
__range_key_type<_Range>,
|
|
956
1034
|
__range_mapped_type<_Range>,
|
|
@@ -958,7 +1036,7 @@ flat_multimap(from_range_t, _Range&&, _Compare = _Compare(), _Allocator = _Alloc
|
|
|
958
1036
|
vector<__range_key_type<_Range>, __allocator_traits_rebind_t<_Allocator, __range_key_type<_Range>>>,
|
|
959
1037
|
vector<__range_mapped_type<_Range>, __allocator_traits_rebind_t<_Allocator, __range_mapped_type<_Range>>>>;
|
|
960
1038
|
|
|
961
|
-
template <ranges::input_range _Range, class _Allocator, class = __enable_if_t<
|
|
1039
|
+
template <ranges::input_range _Range, class _Allocator, class = __enable_if_t<__is_allocator_v<_Allocator>>>
|
|
962
1040
|
flat_multimap(from_range_t, _Range&&, _Allocator) -> flat_multimap<
|
|
963
1041
|
__range_key_type<_Range>,
|
|
964
1042
|
__range_mapped_type<_Range>,
|
|
@@ -967,11 +1045,11 @@ flat_multimap(from_range_t, _Range&&, _Allocator) -> flat_multimap<
|
|
|
967
1045
|
vector<__range_mapped_type<_Range>, __allocator_traits_rebind_t<_Allocator, __range_mapped_type<_Range>>>>;
|
|
968
1046
|
|
|
969
1047
|
template <class _Key, class _Tp, class _Compare = less<_Key>>
|
|
970
|
-
requires(!
|
|
1048
|
+
requires(!__is_allocator_v<_Compare>)
|
|
971
1049
|
flat_multimap(initializer_list<pair<_Key, _Tp>>, _Compare = _Compare()) -> flat_multimap<_Key, _Tp, _Compare>;
|
|
972
1050
|
|
|
973
1051
|
template <class _Key, class _Tp, class _Compare = less<_Key>>
|
|
974
|
-
requires(!
|
|
1052
|
+
requires(!__is_allocator_v<_Compare>)
|
|
975
1053
|
flat_multimap(sorted_equivalent_t, initializer_list<pair<_Key, _Tp>>, _Compare = _Compare())
|
|
976
1054
|
-> flat_multimap<_Key, _Tp, _Compare>;
|
|
977
1055
|
|
|
@@ -980,8 +1058,9 @@ struct uses_allocator<flat_multimap<_Key, _Tp, _Compare, _KeyContainer, _MappedC
|
|
|
980
1058
|
: bool_constant<uses_allocator_v<_KeyContainer, _Allocator> && uses_allocator_v<_MappedContainer, _Allocator>> {};
|
|
981
1059
|
|
|
982
1060
|
template <class _Key, class _Tp, class _Compare, class _KeyContainer, class _MappedContainer, class _Predicate>
|
|
983
|
-
_LIBCPP_HIDE_FROM_ABI
|
|
984
|
-
|
|
1061
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
|
|
1062
|
+
typename flat_multimap<_Key, _Tp, _Compare, _KeyContainer, _MappedContainer>::size_type
|
|
1063
|
+
erase_if(flat_multimap<_Key, _Tp, _Compare, _KeyContainer, _MappedContainer>& __flat_multimap, _Predicate __pred) {
|
|
985
1064
|
auto __zv = ranges::views::zip(__flat_multimap.__containers_.keys, __flat_multimap.__containers_.values);
|
|
986
1065
|
auto __first = __zv.begin();
|
|
987
1066
|
auto __last = __zv.end();
|