@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.292
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 +2 -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/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
|
@@ -600,6 +600,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
|
|
|
600
600
|
# include <__memory/addressof.h>
|
|
601
601
|
# include <__memory/allocator.h>
|
|
602
602
|
# include <__memory/allocator_traits.h>
|
|
603
|
+
# include <__memory/compressed_pair.h>
|
|
603
604
|
# include <__memory/pointer_traits.h>
|
|
604
605
|
# include <__memory/unique_ptr.h>
|
|
605
606
|
# include <__memory_resource/polymorphic_allocator.h>
|
|
@@ -643,34 +644,9 @@ _LIBCPP_PUSH_MACROS
|
|
|
643
644
|
|
|
644
645
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
645
646
|
|
|
646
|
-
template <class _Key,
|
|
647
|
-
class _Cp,
|
|
648
|
-
class _Hash,
|
|
649
|
-
class _Pred,
|
|
650
|
-
bool = is_empty<_Hash>::value && !__libcpp_is_final<_Hash>::value>
|
|
651
|
-
class __unordered_map_hasher : private _Hash {
|
|
652
|
-
public:
|
|
653
|
-
_LIBCPP_HIDE_FROM_ABI __unordered_map_hasher() _NOEXCEPT_(is_nothrow_default_constructible<_Hash>::value) : _Hash() {}
|
|
654
|
-
_LIBCPP_HIDE_FROM_ABI __unordered_map_hasher(const _Hash& __h) _NOEXCEPT_(is_nothrow_copy_constructible<_Hash>::value)
|
|
655
|
-
: _Hash(__h) {}
|
|
656
|
-
_LIBCPP_HIDE_FROM_ABI const _Hash& hash_function() const _NOEXCEPT { return *this; }
|
|
657
|
-
_LIBCPP_HIDE_FROM_ABI size_t operator()(const _Cp& __x) const { return static_cast<const _Hash&>(*this)(__x.first); }
|
|
658
|
-
_LIBCPP_HIDE_FROM_ABI size_t operator()(const _Key& __x) const { return static_cast<const _Hash&>(*this)(__x); }
|
|
659
|
-
# if _LIBCPP_STD_VER >= 20
|
|
660
|
-
template <typename _K2>
|
|
661
|
-
_LIBCPP_HIDE_FROM_ABI size_t operator()(const _K2& __x) const {
|
|
662
|
-
return static_cast<const _Hash&>(*this)(__x);
|
|
663
|
-
}
|
|
664
|
-
# endif
|
|
665
|
-
_LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_hasher& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Hash>) {
|
|
666
|
-
using std::swap;
|
|
667
|
-
swap(static_cast<_Hash&>(*this), static_cast<_Hash&>(__y));
|
|
668
|
-
}
|
|
669
|
-
};
|
|
670
|
-
|
|
671
647
|
template <class _Key, class _Cp, class _Hash, class _Pred>
|
|
672
|
-
class __unordered_map_hasher
|
|
673
|
-
_Hash __hash_;
|
|
648
|
+
class __unordered_map_hasher {
|
|
649
|
+
_LIBCPP_COMPRESSED_ELEMENT(_Hash, __hash_);
|
|
674
650
|
|
|
675
651
|
public:
|
|
676
652
|
_LIBCPP_HIDE_FROM_ABI __unordered_map_hasher() _NOEXCEPT_(is_nothrow_default_constructible<_Hash>::value)
|
|
@@ -692,60 +668,16 @@ public:
|
|
|
692
668
|
}
|
|
693
669
|
};
|
|
694
670
|
|
|
695
|
-
template <class _Key, class _Cp, class _Hash, class _Pred
|
|
671
|
+
template <class _Key, class _Cp, class _Hash, class _Pred>
|
|
696
672
|
inline _LIBCPP_HIDE_FROM_ABI void
|
|
697
|
-
swap(__unordered_map_hasher<_Key, _Cp, _Hash, _Pred,
|
|
698
|
-
|
|
673
|
+
swap(__unordered_map_hasher<_Key, _Cp, _Hash, _Pred>& __x, __unordered_map_hasher<_Key, _Cp, _Hash, _Pred>& __y)
|
|
674
|
+
_NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) {
|
|
699
675
|
__x.swap(__y);
|
|
700
676
|
}
|
|
701
677
|
|
|
702
|
-
template <class _Key,
|
|
703
|
-
class _Cp,
|
|
704
|
-
class _Pred,
|
|
705
|
-
class _Hash,
|
|
706
|
-
bool = is_empty<_Pred>::value && !__libcpp_is_final<_Pred>::value>
|
|
707
|
-
class __unordered_map_equal : private _Pred {
|
|
708
|
-
public:
|
|
709
|
-
_LIBCPP_HIDE_FROM_ABI __unordered_map_equal() _NOEXCEPT_(is_nothrow_default_constructible<_Pred>::value) : _Pred() {}
|
|
710
|
-
_LIBCPP_HIDE_FROM_ABI __unordered_map_equal(const _Pred& __p) _NOEXCEPT_(is_nothrow_copy_constructible<_Pred>::value)
|
|
711
|
-
: _Pred(__p) {}
|
|
712
|
-
_LIBCPP_HIDE_FROM_ABI const _Pred& key_eq() const _NOEXCEPT { return *this; }
|
|
713
|
-
_LIBCPP_HIDE_FROM_ABI bool operator()(const _Cp& __x, const _Cp& __y) const {
|
|
714
|
-
return static_cast<const _Pred&>(*this)(__x.first, __y.first);
|
|
715
|
-
}
|
|
716
|
-
_LIBCPP_HIDE_FROM_ABI bool operator()(const _Cp& __x, const _Key& __y) const {
|
|
717
|
-
return static_cast<const _Pred&>(*this)(__x.first, __y);
|
|
718
|
-
}
|
|
719
|
-
_LIBCPP_HIDE_FROM_ABI bool operator()(const _Key& __x, const _Cp& __y) const {
|
|
720
|
-
return static_cast<const _Pred&>(*this)(__x, __y.__get_value().first);
|
|
721
|
-
}
|
|
722
|
-
# if _LIBCPP_STD_VER >= 20
|
|
723
|
-
template <typename _K2>
|
|
724
|
-
_LIBCPP_HIDE_FROM_ABI bool operator()(const _Cp& __x, const _K2& __y) const {
|
|
725
|
-
return static_cast<const _Pred&>(*this)(__x.first, __y);
|
|
726
|
-
}
|
|
727
|
-
template <typename _K2>
|
|
728
|
-
_LIBCPP_HIDE_FROM_ABI bool operator()(const _K2& __x, const _Cp& __y) const {
|
|
729
|
-
return static_cast<const _Pred&>(*this)(__x, __y.__get_value().first);
|
|
730
|
-
}
|
|
731
|
-
template <typename _K2>
|
|
732
|
-
_LIBCPP_HIDE_FROM_ABI bool operator()(const _Key& __x, const _K2& __y) const {
|
|
733
|
-
return static_cast<const _Pred&>(*this)(__x, __y);
|
|
734
|
-
}
|
|
735
|
-
template <typename _K2>
|
|
736
|
-
_LIBCPP_HIDE_FROM_ABI bool operator()(const _K2& __x, const _Key& __y) const {
|
|
737
|
-
return static_cast<const _Pred&>(*this)(__x, __y);
|
|
738
|
-
}
|
|
739
|
-
# endif
|
|
740
|
-
_LIBCPP_HIDE_FROM_ABI void swap(__unordered_map_equal& __y) _NOEXCEPT_(__is_nothrow_swappable_v<_Pred>) {
|
|
741
|
-
using std::swap;
|
|
742
|
-
swap(static_cast<_Pred&>(*this), static_cast<_Pred&>(__y));
|
|
743
|
-
}
|
|
744
|
-
};
|
|
745
|
-
|
|
746
678
|
template <class _Key, class _Cp, class _Pred, class _Hash>
|
|
747
|
-
class __unordered_map_equal
|
|
748
|
-
_Pred __pred_;
|
|
679
|
+
class __unordered_map_equal {
|
|
680
|
+
_LIBCPP_COMPRESSED_ELEMENT(_Pred, __pred_);
|
|
749
681
|
|
|
750
682
|
public:
|
|
751
683
|
_LIBCPP_HIDE_FROM_ABI __unordered_map_equal() _NOEXCEPT_(is_nothrow_default_constructible<_Pred>::value)
|
|
@@ -780,9 +712,9 @@ public:
|
|
|
780
712
|
}
|
|
781
713
|
};
|
|
782
714
|
|
|
783
|
-
template <class _Key, class _Cp, class _Pred, class _Hash
|
|
715
|
+
template <class _Key, class _Cp, class _Pred, class _Hash>
|
|
784
716
|
inline _LIBCPP_HIDE_FROM_ABI void
|
|
785
|
-
swap(__unordered_map_equal<_Key, _Cp, _Pred, _Hash
|
|
717
|
+
swap(__unordered_map_equal<_Key, _Cp, _Pred, _Hash>& __x, __unordered_map_equal<_Key, _Cp, _Pred, _Hash>& __y)
|
|
786
718
|
_NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) {
|
|
787
719
|
__x.swap(__y);
|
|
788
720
|
}
|
|
@@ -844,10 +776,10 @@ class __hash_map_iterator {
|
|
|
844
776
|
|
|
845
777
|
public:
|
|
846
778
|
typedef forward_iterator_tag iterator_category;
|
|
847
|
-
|
|
848
|
-
|
|
779
|
+
using value_type = typename _HashIterator::value_type;
|
|
780
|
+
using difference_type = ptrdiff_t;
|
|
849
781
|
typedef value_type& reference;
|
|
850
|
-
|
|
782
|
+
using pointer = typename _HashIterator::pointer;
|
|
851
783
|
|
|
852
784
|
_LIBCPP_HIDE_FROM_ABI __hash_map_iterator() _NOEXCEPT {}
|
|
853
785
|
|
|
@@ -895,10 +827,10 @@ class __hash_map_const_iterator {
|
|
|
895
827
|
|
|
896
828
|
public:
|
|
897
829
|
typedef forward_iterator_tag iterator_category;
|
|
898
|
-
|
|
899
|
-
|
|
830
|
+
using value_type = typename _HashIterator::value_type;
|
|
831
|
+
using difference_type = ptrdiff_t;
|
|
900
832
|
typedef const value_type& reference;
|
|
901
|
-
|
|
833
|
+
using pointer = typename _HashIterator::pointer;
|
|
902
834
|
|
|
903
835
|
_LIBCPP_HIDE_FROM_ABI __hash_map_const_iterator() _NOEXCEPT {}
|
|
904
836
|
|
|
@@ -972,9 +904,6 @@ private:
|
|
|
972
904
|
|
|
973
905
|
__table __table_;
|
|
974
906
|
|
|
975
|
-
typedef typename __table::_NodeTypes _NodeTypes;
|
|
976
|
-
typedef typename __table::__node_pointer __node_pointer;
|
|
977
|
-
typedef typename __table::__node_const_pointer __node_const_pointer;
|
|
978
907
|
typedef typename __table::__node_traits __node_traits;
|
|
979
908
|
typedef typename __table::__node_allocator __node_allocator;
|
|
980
909
|
typedef typename __table::__node __node;
|
|
@@ -1046,10 +975,10 @@ public:
|
|
|
1046
975
|
# endif
|
|
1047
976
|
|
|
1048
977
|
_LIBCPP_HIDE_FROM_ABI explicit unordered_map(const allocator_type& __a);
|
|
1049
|
-
_LIBCPP_HIDE_FROM_ABI unordered_map(const unordered_map& __u);
|
|
978
|
+
_LIBCPP_HIDE_FROM_ABI unordered_map(const unordered_map& __u) = default;
|
|
1050
979
|
_LIBCPP_HIDE_FROM_ABI unordered_map(const unordered_map& __u, const allocator_type& __a);
|
|
1051
980
|
# ifndef _LIBCPP_CXX03_LANG
|
|
1052
|
-
_LIBCPP_HIDE_FROM_ABI unordered_map(unordered_map&& __u)
|
|
981
|
+
_LIBCPP_HIDE_FROM_ABI unordered_map(unordered_map&& __u) = default;
|
|
1053
982
|
_LIBCPP_HIDE_FROM_ABI unordered_map(unordered_map&& __u, const allocator_type& __a);
|
|
1054
983
|
_LIBCPP_HIDE_FROM_ABI unordered_map(initializer_list<value_type> __il);
|
|
1055
984
|
_LIBCPP_HIDE_FROM_ABI
|
|
@@ -1099,41 +1028,26 @@ public:
|
|
|
1099
1028
|
static_assert(sizeof(std::__diagnose_unordered_container_requirements<_Key, _Hash, _Pred>(0)), "");
|
|
1100
1029
|
}
|
|
1101
1030
|
|
|
1102
|
-
_LIBCPP_HIDE_FROM_ABI unordered_map& operator=(const unordered_map& __u)
|
|
1103
|
-
# ifndef _LIBCPP_CXX03_LANG
|
|
1104
|
-
__table_ = __u.__table_;
|
|
1105
|
-
# else
|
|
1106
|
-
if (this != std::addressof(__u)) {
|
|
1107
|
-
__table_.clear();
|
|
1108
|
-
__table_.hash_function() = __u.__table_.hash_function();
|
|
1109
|
-
__table_.key_eq() = __u.__table_.key_eq();
|
|
1110
|
-
__table_.max_load_factor() = __u.__table_.max_load_factor();
|
|
1111
|
-
__table_.__copy_assign_alloc(__u.__table_);
|
|
1112
|
-
insert(__u.begin(), __u.end());
|
|
1113
|
-
}
|
|
1114
|
-
# endif
|
|
1115
|
-
return *this;
|
|
1116
|
-
}
|
|
1031
|
+
_LIBCPP_HIDE_FROM_ABI unordered_map& operator=(const unordered_map& __u) = default;
|
|
1117
1032
|
# ifndef _LIBCPP_CXX03_LANG
|
|
1118
|
-
_LIBCPP_HIDE_FROM_ABI unordered_map& operator=(unordered_map&& __u)
|
|
1119
|
-
_NOEXCEPT_(is_nothrow_move_assignable<__table>::value);
|
|
1033
|
+
_LIBCPP_HIDE_FROM_ABI unordered_map& operator=(unordered_map&& __u) = default;
|
|
1120
1034
|
_LIBCPP_HIDE_FROM_ABI unordered_map& operator=(initializer_list<value_type> __il);
|
|
1121
1035
|
# endif // _LIBCPP_CXX03_LANG
|
|
1122
1036
|
|
|
1123
|
-
_LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT {
|
|
1037
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT {
|
|
1124
1038
|
return allocator_type(__table_.__node_alloc());
|
|
1125
1039
|
}
|
|
1126
1040
|
|
|
1127
1041
|
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool empty() const _NOEXCEPT { return __table_.size() == 0; }
|
|
1128
|
-
_LIBCPP_HIDE_FROM_ABI size_type size() const _NOEXCEPT { return __table_.size(); }
|
|
1129
|
-
_LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT { return __table_.max_size(); }
|
|
1042
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type size() const _NOEXCEPT { return __table_.size(); }
|
|
1043
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT { return __table_.max_size(); }
|
|
1130
1044
|
|
|
1131
|
-
_LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT { return __table_.begin(); }
|
|
1132
|
-
_LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT { return __table_.end(); }
|
|
1133
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT { return __table_.begin(); }
|
|
1134
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT { return __table_.end(); }
|
|
1135
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT { return __table_.begin(); }
|
|
1136
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT { return __table_.end(); }
|
|
1045
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT { return __table_.begin(); }
|
|
1046
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT { return __table_.end(); }
|
|
1047
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT { return __table_.begin(); }
|
|
1048
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT { return __table_.end(); }
|
|
1049
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT { return __table_.begin(); }
|
|
1050
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT { return __table_.end(); }
|
|
1137
1051
|
|
|
1138
1052
|
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert(const value_type& __x) { return __table_.__emplace_unique(__x); }
|
|
1139
1053
|
|
|
@@ -1187,14 +1101,13 @@ public:
|
|
|
1187
1101
|
# if _LIBCPP_STD_VER >= 17
|
|
1188
1102
|
template <class... _Args>
|
|
1189
1103
|
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> try_emplace(const key_type& __k, _Args&&... __args) {
|
|
1190
|
-
return __table_.
|
|
1191
|
-
|
|
1104
|
+
return __table_.__emplace_unique(
|
|
1105
|
+
piecewise_construct, std::forward_as_tuple(__k), std::forward_as_tuple(std::forward<_Args>(__args)...));
|
|
1192
1106
|
}
|
|
1193
1107
|
|
|
1194
1108
|
template <class... _Args>
|
|
1195
1109
|
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> try_emplace(key_type&& __k, _Args&&... __args) {
|
|
1196
|
-
return __table_.
|
|
1197
|
-
__k,
|
|
1110
|
+
return __table_.__emplace_unique(
|
|
1198
1111
|
piecewise_construct,
|
|
1199
1112
|
std::forward_as_tuple(std::move(__k)),
|
|
1200
1113
|
std::forward_as_tuple(std::forward<_Args>(__args)...));
|
|
@@ -1212,7 +1125,7 @@ public:
|
|
|
1212
1125
|
|
|
1213
1126
|
template <class _Vp>
|
|
1214
1127
|
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(const key_type& __k, _Vp&& __v) {
|
|
1215
|
-
pair<iterator, bool> __res = __table_.
|
|
1128
|
+
pair<iterator, bool> __res = __table_.__emplace_unique(__k, std::forward<_Vp>(__v));
|
|
1216
1129
|
if (!__res.second) {
|
|
1217
1130
|
__res.first->second = std::forward<_Vp>(__v);
|
|
1218
1131
|
}
|
|
@@ -1221,7 +1134,7 @@ public:
|
|
|
1221
1134
|
|
|
1222
1135
|
template <class _Vp>
|
|
1223
1136
|
_LIBCPP_HIDE_FROM_ABI pair<iterator, bool> insert_or_assign(key_type&& __k, _Vp&& __v) {
|
|
1224
|
-
pair<iterator, bool> __res = __table_.
|
|
1137
|
+
pair<iterator, bool> __res = __table_.__emplace_unique(std::move(__k), std::forward<_Vp>(__v));
|
|
1225
1138
|
if (!__res.second) {
|
|
1226
1139
|
__res.first->second = std::forward<_Vp>(__v);
|
|
1227
1140
|
}
|
|
@@ -1258,10 +1171,10 @@ public:
|
|
|
1258
1171
|
"node_type with incompatible allocator passed to unordered_map::insert()");
|
|
1259
1172
|
return __table_.template __node_handle_insert_unique<node_type>(__hint.__i_, std::move(__nh));
|
|
1260
1173
|
}
|
|
1261
|
-
_LIBCPP_HIDE_FROM_ABI node_type extract(key_type const& __key) {
|
|
1174
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI node_type extract(key_type const& __key) {
|
|
1262
1175
|
return __table_.template __node_handle_extract<node_type>(__key);
|
|
1263
1176
|
}
|
|
1264
|
-
_LIBCPP_HIDE_FROM_ABI node_type extract(const_iterator __it) {
|
|
1177
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI node_type extract(const_iterator __it) {
|
|
1265
1178
|
return __table_.template __node_handle_extract<node_type>(__it.__i_);
|
|
1266
1179
|
}
|
|
1267
1180
|
|
|
@@ -1295,52 +1208,56 @@ public:
|
|
|
1295
1208
|
__table_.swap(__u.__table_);
|
|
1296
1209
|
}
|
|
1297
1210
|
|
|
1298
|
-
_LIBCPP_HIDE_FROM_ABI hasher hash_function() const {
|
|
1299
|
-
|
|
1211
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI hasher hash_function() const {
|
|
1212
|
+
return __table_.hash_function().hash_function();
|
|
1213
|
+
}
|
|
1214
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI key_equal key_eq() const { return __table_.key_eq().key_eq(); }
|
|
1300
1215
|
|
|
1301
|
-
_LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __k) { return __table_.find(__k); }
|
|
1302
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __k) const { return __table_.find(__k); }
|
|
1216
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __k) { return __table_.find(__k); }
|
|
1217
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __k) const { return __table_.find(__k); }
|
|
1303
1218
|
# if _LIBCPP_STD_VER >= 20
|
|
1304
1219
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
1305
|
-
_LIBCPP_HIDE_FROM_ABI iterator find(const _K2& __k) {
|
|
1220
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI iterator find(const _K2& __k) {
|
|
1306
1221
|
return __table_.find(__k);
|
|
1307
1222
|
}
|
|
1308
1223
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
1309
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const _K2& __k) const {
|
|
1224
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI const_iterator find(const _K2& __k) const {
|
|
1310
1225
|
return __table_.find(__k);
|
|
1311
1226
|
}
|
|
1312
1227
|
# endif // _LIBCPP_STD_VER >= 20
|
|
1313
1228
|
|
|
1314
|
-
_LIBCPP_HIDE_FROM_ABI size_type count(const key_type& __k) const {
|
|
1229
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type count(const key_type& __k) const {
|
|
1230
|
+
return __table_.__count_unique(__k);
|
|
1231
|
+
}
|
|
1315
1232
|
# if _LIBCPP_STD_VER >= 20
|
|
1316
1233
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
1317
|
-
_LIBCPP_HIDE_FROM_ABI size_type count(const _K2& __k) const {
|
|
1234
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI size_type count(const _K2& __k) const {
|
|
1318
1235
|
return __table_.__count_unique(__k);
|
|
1319
1236
|
}
|
|
1320
1237
|
# endif // _LIBCPP_STD_VER >= 20
|
|
1321
1238
|
|
|
1322
1239
|
# if _LIBCPP_STD_VER >= 20
|
|
1323
|
-
_LIBCPP_HIDE_FROM_ABI bool contains(const key_type& __k) const { return find(__k) != end(); }
|
|
1240
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI bool contains(const key_type& __k) const { return find(__k) != end(); }
|
|
1324
1241
|
|
|
1325
1242
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
1326
|
-
_LIBCPP_HIDE_FROM_ABI bool contains(const _K2& __k) const {
|
|
1243
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI bool contains(const _K2& __k) const {
|
|
1327
1244
|
return find(__k) != end();
|
|
1328
1245
|
}
|
|
1329
1246
|
# endif // _LIBCPP_STD_VER >= 20
|
|
1330
1247
|
|
|
1331
|
-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const key_type& __k) {
|
|
1248
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const key_type& __k) {
|
|
1332
1249
|
return __table_.__equal_range_unique(__k);
|
|
1333
1250
|
}
|
|
1334
|
-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const key_type& __k) const {
|
|
1251
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const key_type& __k) const {
|
|
1335
1252
|
return __table_.__equal_range_unique(__k);
|
|
1336
1253
|
}
|
|
1337
1254
|
# if _LIBCPP_STD_VER >= 20
|
|
1338
1255
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
1339
|
-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const _K2& __k) {
|
|
1256
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const _K2& __k) {
|
|
1340
1257
|
return __table_.__equal_range_unique(__k);
|
|
1341
1258
|
}
|
|
1342
1259
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
1343
|
-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const _K2& __k) const {
|
|
1260
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const _K2& __k) const {
|
|
1344
1261
|
return __table_.__equal_range_unique(__k);
|
|
1345
1262
|
}
|
|
1346
1263
|
# endif // _LIBCPP_STD_VER >= 20
|
|
@@ -1350,24 +1267,32 @@ public:
|
|
|
1350
1267
|
_LIBCPP_HIDE_FROM_ABI mapped_type& operator[](key_type&& __k);
|
|
1351
1268
|
# endif
|
|
1352
1269
|
|
|
1353
|
-
_LIBCPP_HIDE_FROM_ABI mapped_type& at(const key_type& __k);
|
|
1354
|
-
_LIBCPP_HIDE_FROM_ABI const mapped_type& at(const key_type& __k) const;
|
|
1270
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI mapped_type& at(const key_type& __k);
|
|
1271
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const mapped_type& at(const key_type& __k) const;
|
|
1355
1272
|
|
|
1356
|
-
_LIBCPP_HIDE_FROM_ABI size_type bucket_count() const _NOEXCEPT { return __table_.bucket_count(); }
|
|
1357
|
-
_LIBCPP_HIDE_FROM_ABI size_type max_bucket_count() const _NOEXCEPT {
|
|
1273
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type bucket_count() const _NOEXCEPT { return __table_.bucket_count(); }
|
|
1274
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type max_bucket_count() const _NOEXCEPT {
|
|
1275
|
+
return __table_.max_bucket_count();
|
|
1276
|
+
}
|
|
1358
1277
|
|
|
1359
|
-
_LIBCPP_HIDE_FROM_ABI size_type bucket_size(size_type __n) const {
|
|
1360
|
-
|
|
1278
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type bucket_size(size_type __n) const {
|
|
1279
|
+
return __table_.bucket_size(__n);
|
|
1280
|
+
}
|
|
1281
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type bucket(const key_type& __k) const { return __table_.bucket(__k); }
|
|
1361
1282
|
|
|
1362
|
-
_LIBCPP_HIDE_FROM_ABI local_iterator begin(size_type __n) { return __table_.begin(__n); }
|
|
1363
|
-
_LIBCPP_HIDE_FROM_ABI local_iterator end(size_type __n) { return __table_.end(__n); }
|
|
1364
|
-
_LIBCPP_HIDE_FROM_ABI const_local_iterator begin(size_type __n) const {
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
_LIBCPP_HIDE_FROM_ABI const_local_iterator
|
|
1283
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI local_iterator begin(size_type __n) { return __table_.begin(__n); }
|
|
1284
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI local_iterator end(size_type __n) { return __table_.end(__n); }
|
|
1285
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator begin(size_type __n) const {
|
|
1286
|
+
return __table_.cbegin(__n);
|
|
1287
|
+
}
|
|
1288
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator end(size_type __n) const { return __table_.cend(__n); }
|
|
1289
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator cbegin(size_type __n) const {
|
|
1290
|
+
return __table_.cbegin(__n);
|
|
1291
|
+
}
|
|
1292
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator cend(size_type __n) const { return __table_.cend(__n); }
|
|
1368
1293
|
|
|
1369
|
-
_LIBCPP_HIDE_FROM_ABI float load_factor() const _NOEXCEPT { return __table_.load_factor(); }
|
|
1370
|
-
_LIBCPP_HIDE_FROM_ABI float max_load_factor() const _NOEXCEPT { return __table_.max_load_factor(); }
|
|
1294
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI float load_factor() const _NOEXCEPT { return __table_.load_factor(); }
|
|
1295
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI float max_load_factor() const _NOEXCEPT { return __table_.max_load_factor(); }
|
|
1371
1296
|
_LIBCPP_HIDE_FROM_ABI void max_load_factor(float __mlf) { __table_.max_load_factor(__mlf); }
|
|
1372
1297
|
_LIBCPP_HIDE_FROM_ABI void rehash(size_type __n) { __table_.__rehash_unique(__n); }
|
|
1373
1298
|
_LIBCPP_HIDE_FROM_ABI void reserve(size_type __n) { __table_.__reserve_unique(__n); }
|
|
@@ -1384,10 +1309,10 @@ template <class _InputIterator,
|
|
|
1384
1309
|
class _Pred = equal_to<__iter_key_type<_InputIterator>>,
|
|
1385
1310
|
class _Allocator = allocator<__iter_to_alloc_type<_InputIterator>>,
|
|
1386
1311
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
1387
|
-
class = enable_if_t<!
|
|
1312
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
1388
1313
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
1389
|
-
class = enable_if_t<!
|
|
1390
|
-
class = enable_if_t<
|
|
1314
|
+
class = enable_if_t<!__is_allocator_v<_Pred>>,
|
|
1315
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1391
1316
|
unordered_map(_InputIterator,
|
|
1392
1317
|
_InputIterator,
|
|
1393
1318
|
typename allocator_traits<_Allocator>::size_type = 0,
|
|
@@ -1401,10 +1326,10 @@ template <ranges::input_range _Range,
|
|
|
1401
1326
|
class _Hash = hash<__range_key_type<_Range>>,
|
|
1402
1327
|
class _Pred = equal_to<__range_key_type<_Range>>,
|
|
1403
1328
|
class _Allocator = allocator<__range_to_alloc_type<_Range>>,
|
|
1404
|
-
class = enable_if_t<!
|
|
1329
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
1405
1330
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
1406
|
-
class = enable_if_t<!
|
|
1407
|
-
class = enable_if_t<
|
|
1331
|
+
class = enable_if_t<!__is_allocator_v<_Pred>>,
|
|
1332
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1408
1333
|
unordered_map(from_range_t,
|
|
1409
1334
|
_Range&&,
|
|
1410
1335
|
typename allocator_traits<_Allocator>::size_type = 0,
|
|
@@ -1419,10 +1344,10 @@ template <class _Key,
|
|
|
1419
1344
|
class _Hash = hash<remove_const_t<_Key>>,
|
|
1420
1345
|
class _Pred = equal_to<remove_const_t<_Key>>,
|
|
1421
1346
|
class _Allocator = allocator<pair<const _Key, _Tp>>,
|
|
1422
|
-
class = enable_if_t<!
|
|
1347
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
1423
1348
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
1424
|
-
class = enable_if_t<!
|
|
1425
|
-
class = enable_if_t<
|
|
1349
|
+
class = enable_if_t<!__is_allocator_v<_Pred>>,
|
|
1350
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1426
1351
|
unordered_map(initializer_list<pair<_Key, _Tp>>,
|
|
1427
1352
|
typename allocator_traits<_Allocator>::size_type = 0,
|
|
1428
1353
|
_Hash = _Hash(),
|
|
@@ -1432,7 +1357,7 @@ unordered_map(initializer_list<pair<_Key, _Tp>>,
|
|
|
1432
1357
|
template <class _InputIterator,
|
|
1433
1358
|
class _Allocator,
|
|
1434
1359
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
1435
|
-
class = enable_if_t<
|
|
1360
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1436
1361
|
unordered_map(_InputIterator, _InputIterator, typename allocator_traits<_Allocator>::size_type, _Allocator)
|
|
1437
1362
|
-> unordered_map<__iter_key_type<_InputIterator>,
|
|
1438
1363
|
__iter_mapped_type<_InputIterator>,
|
|
@@ -1443,7 +1368,7 @@ unordered_map(_InputIterator, _InputIterator, typename allocator_traits<_Allocat
|
|
|
1443
1368
|
template <class _InputIterator,
|
|
1444
1369
|
class _Allocator,
|
|
1445
1370
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
1446
|
-
class = enable_if_t<
|
|
1371
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1447
1372
|
unordered_map(_InputIterator, _InputIterator, _Allocator)
|
|
1448
1373
|
-> unordered_map<__iter_key_type<_InputIterator>,
|
|
1449
1374
|
__iter_mapped_type<_InputIterator>,
|
|
@@ -1455,9 +1380,9 @@ template <class _InputIterator,
|
|
|
1455
1380
|
class _Hash,
|
|
1456
1381
|
class _Allocator,
|
|
1457
1382
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
1458
|
-
class = enable_if_t<!
|
|
1383
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
1459
1384
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
1460
|
-
class = enable_if_t<
|
|
1385
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1461
1386
|
unordered_map(_InputIterator, _InputIterator, typename allocator_traits<_Allocator>::size_type, _Hash, _Allocator)
|
|
1462
1387
|
-> unordered_map<__iter_key_type<_InputIterator>,
|
|
1463
1388
|
__iter_mapped_type<_InputIterator>,
|
|
@@ -1467,7 +1392,7 @@ unordered_map(_InputIterator, _InputIterator, typename allocator_traits<_Allocat
|
|
|
1467
1392
|
|
|
1468
1393
|
# if _LIBCPP_STD_VER >= 23
|
|
1469
1394
|
|
|
1470
|
-
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<
|
|
1395
|
+
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1471
1396
|
unordered_map(from_range_t, _Range&&, typename allocator_traits<_Allocator>::size_type, _Allocator)
|
|
1472
1397
|
-> unordered_map<__range_key_type<_Range>,
|
|
1473
1398
|
__range_mapped_type<_Range>,
|
|
@@ -1475,7 +1400,7 @@ unordered_map(from_range_t, _Range&&, typename allocator_traits<_Allocator>::siz
|
|
|
1475
1400
|
equal_to<__range_key_type<_Range>>,
|
|
1476
1401
|
_Allocator>;
|
|
1477
1402
|
|
|
1478
|
-
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<
|
|
1403
|
+
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1479
1404
|
unordered_map(from_range_t, _Range&&, _Allocator)
|
|
1480
1405
|
-> unordered_map<__range_key_type<_Range>,
|
|
1481
1406
|
__range_mapped_type<_Range>,
|
|
@@ -1486,9 +1411,9 @@ unordered_map(from_range_t, _Range&&, _Allocator)
|
|
|
1486
1411
|
template <ranges::input_range _Range,
|
|
1487
1412
|
class _Hash,
|
|
1488
1413
|
class _Allocator,
|
|
1489
|
-
class = enable_if_t<!
|
|
1414
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
1490
1415
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
1491
|
-
class = enable_if_t<
|
|
1416
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1492
1417
|
unordered_map(from_range_t, _Range&&, typename allocator_traits<_Allocator>::size_type, _Hash, _Allocator)
|
|
1493
1418
|
-> unordered_map<__range_key_type<_Range>,
|
|
1494
1419
|
__range_mapped_type<_Range>,
|
|
@@ -1498,11 +1423,11 @@ unordered_map(from_range_t, _Range&&, typename allocator_traits<_Allocator>::siz
|
|
|
1498
1423
|
|
|
1499
1424
|
# endif
|
|
1500
1425
|
|
|
1501
|
-
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<
|
|
1426
|
+
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1502
1427
|
unordered_map(initializer_list<pair<_Key, _Tp>>, typename allocator_traits<_Allocator>::size_type, _Allocator)
|
|
1503
1428
|
-> unordered_map<remove_const_t<_Key>, _Tp, hash<remove_const_t<_Key>>, equal_to<remove_const_t<_Key>>, _Allocator>;
|
|
1504
1429
|
|
|
1505
|
-
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<
|
|
1430
|
+
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1506
1431
|
unordered_map(initializer_list<pair<_Key, _Tp>>, _Allocator)
|
|
1507
1432
|
-> unordered_map<remove_const_t<_Key>, _Tp, hash<remove_const_t<_Key>>, equal_to<remove_const_t<_Key>>, _Allocator>;
|
|
1508
1433
|
|
|
@@ -1510,9 +1435,9 @@ template <class _Key,
|
|
|
1510
1435
|
class _Tp,
|
|
1511
1436
|
class _Hash,
|
|
1512
1437
|
class _Allocator,
|
|
1513
|
-
class = enable_if_t<!
|
|
1438
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
1514
1439
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
1515
|
-
class = enable_if_t<
|
|
1440
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
1516
1441
|
unordered_map(initializer_list<pair<_Key, _Tp>>, typename allocator_traits<_Allocator>::size_type, _Hash, _Allocator)
|
|
1517
1442
|
-> unordered_map<remove_const_t<_Key>, _Tp, _Hash, equal_to<remove_const_t<_Key>>, _Allocator>;
|
|
1518
1443
|
# endif
|
|
@@ -1563,12 +1488,6 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
|
|
1563
1488
|
insert(__first, __last);
|
|
1564
1489
|
}
|
|
1565
1490
|
|
|
1566
|
-
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1567
|
-
unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(const unordered_map& __u) : __table_(__u.__table_) {
|
|
1568
|
-
__table_.__rehash_unique(__u.bucket_count());
|
|
1569
|
-
insert(__u.begin(), __u.end());
|
|
1570
|
-
}
|
|
1571
|
-
|
|
1572
1491
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1573
1492
|
unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(const unordered_map& __u, const allocator_type& __a)
|
|
1574
1493
|
: __table_(__u.__table_, typename __table::allocator_type(__a)) {
|
|
@@ -1578,11 +1497,6 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(const unordered_ma
|
|
|
1578
1497
|
|
|
1579
1498
|
# ifndef _LIBCPP_CXX03_LANG
|
|
1580
1499
|
|
|
1581
|
-
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1582
|
-
inline unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(unordered_map&& __u)
|
|
1583
|
-
_NOEXCEPT_(is_nothrow_move_constructible<__table>::value)
|
|
1584
|
-
: __table_(std::move(__u.__table_)) {}
|
|
1585
|
-
|
|
1586
1500
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1587
1501
|
unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(unordered_map&& __u, const allocator_type& __a)
|
|
1588
1502
|
: __table_(std::move(__u.__table_), typename __table::allocator_type(__a)) {
|
|
@@ -1618,14 +1532,6 @@ unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(
|
|
|
1618
1532
|
insert(__il.begin(), __il.end());
|
|
1619
1533
|
}
|
|
1620
1534
|
|
|
1621
|
-
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1622
|
-
inline unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&
|
|
1623
|
-
unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(unordered_map&& __u)
|
|
1624
|
-
_NOEXCEPT_(is_nothrow_move_assignable<__table>::value) {
|
|
1625
|
-
__table_ = std::move(__u.__table_);
|
|
1626
|
-
return *this;
|
|
1627
|
-
}
|
|
1628
|
-
|
|
1629
1535
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1630
1536
|
inline unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&
|
|
1631
1537
|
unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(initializer_list<value_type> __il) {
|
|
@@ -1646,16 +1552,13 @@ inline void unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterato
|
|
|
1646
1552
|
|
|
1647
1553
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1648
1554
|
_Tp& unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type& __k) {
|
|
1649
|
-
return __table_
|
|
1650
|
-
.__emplace_unique_key_args(__k, piecewise_construct, std::forward_as_tuple(__k), std::forward_as_tuple())
|
|
1555
|
+
return __table_.__emplace_unique(piecewise_construct, std::forward_as_tuple(__k), std::forward_as_tuple())
|
|
1651
1556
|
.first->second;
|
|
1652
1557
|
}
|
|
1653
1558
|
|
|
1654
1559
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
1655
1560
|
_Tp& unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](key_type&& __k) {
|
|
1656
|
-
return __table_
|
|
1657
|
-
.__emplace_unique_key_args(
|
|
1658
|
-
__k, piecewise_construct, std::forward_as_tuple(std::move(__k)), std::forward_as_tuple())
|
|
1561
|
+
return __table_.__emplace_unique(piecewise_construct, std::forward_as_tuple(std::move(__k)), std::forward_as_tuple())
|
|
1659
1562
|
.first->second;
|
|
1660
1563
|
}
|
|
1661
1564
|
# else // _LIBCPP_CXX03_LANG
|
|
@@ -1781,12 +1684,8 @@ private:
|
|
|
1781
1684
|
|
|
1782
1685
|
__table __table_;
|
|
1783
1686
|
|
|
1784
|
-
typedef typename __table::_NodeTypes _NodeTypes;
|
|
1785
1687
|
typedef typename __table::__node_traits __node_traits;
|
|
1786
|
-
typedef typename __table::__node_allocator __node_allocator;
|
|
1787
1688
|
typedef typename __table::__node __node;
|
|
1788
|
-
typedef __hash_map_node_destructor<__node_allocator> _Dp;
|
|
1789
|
-
typedef unique_ptr<__node, _Dp> __node_holder;
|
|
1790
1689
|
typedef allocator_traits<allocator_type> __alloc_traits;
|
|
1791
1690
|
static_assert(is_same<typename __node_traits::size_type, typename __alloc_traits::size_type>::value,
|
|
1792
1691
|
"Allocator uses different size_type for different types");
|
|
@@ -1852,11 +1751,10 @@ public:
|
|
|
1852
1751
|
# endif
|
|
1853
1752
|
|
|
1854
1753
|
_LIBCPP_HIDE_FROM_ABI explicit unordered_multimap(const allocator_type& __a);
|
|
1855
|
-
_LIBCPP_HIDE_FROM_ABI unordered_multimap(const unordered_multimap& __u);
|
|
1754
|
+
_LIBCPP_HIDE_FROM_ABI unordered_multimap(const unordered_multimap& __u) = default;
|
|
1856
1755
|
_LIBCPP_HIDE_FROM_ABI unordered_multimap(const unordered_multimap& __u, const allocator_type& __a);
|
|
1857
1756
|
# ifndef _LIBCPP_CXX03_LANG
|
|
1858
|
-
_LIBCPP_HIDE_FROM_ABI unordered_multimap(unordered_multimap&& __u)
|
|
1859
|
-
_NOEXCEPT_(is_nothrow_move_constructible<__table>::value);
|
|
1757
|
+
_LIBCPP_HIDE_FROM_ABI unordered_multimap(unordered_multimap&& __u) = default;
|
|
1860
1758
|
_LIBCPP_HIDE_FROM_ABI unordered_multimap(unordered_multimap&& __u, const allocator_type& __a);
|
|
1861
1759
|
_LIBCPP_HIDE_FROM_ABI unordered_multimap(initializer_list<value_type> __il);
|
|
1862
1760
|
_LIBCPP_HIDE_FROM_ABI unordered_multimap(
|
|
@@ -1906,41 +1804,26 @@ public:
|
|
|
1906
1804
|
static_assert(sizeof(std::__diagnose_unordered_container_requirements<_Key, _Hash, _Pred>(0)), "");
|
|
1907
1805
|
}
|
|
1908
1806
|
|
|
1909
|
-
_LIBCPP_HIDE_FROM_ABI unordered_multimap& operator=(const unordered_multimap& __u)
|
|
1910
|
-
# ifndef _LIBCPP_CXX03_LANG
|
|
1911
|
-
__table_ = __u.__table_;
|
|
1912
|
-
# else
|
|
1913
|
-
if (this != std::addressof(__u)) {
|
|
1914
|
-
__table_.clear();
|
|
1915
|
-
__table_.hash_function() = __u.__table_.hash_function();
|
|
1916
|
-
__table_.key_eq() = __u.__table_.key_eq();
|
|
1917
|
-
__table_.max_load_factor() = __u.__table_.max_load_factor();
|
|
1918
|
-
__table_.__copy_assign_alloc(__u.__table_);
|
|
1919
|
-
insert(__u.begin(), __u.end());
|
|
1920
|
-
}
|
|
1921
|
-
# endif
|
|
1922
|
-
return *this;
|
|
1923
|
-
}
|
|
1807
|
+
_LIBCPP_HIDE_FROM_ABI unordered_multimap& operator=(const unordered_multimap& __u) = default;
|
|
1924
1808
|
# ifndef _LIBCPP_CXX03_LANG
|
|
1925
|
-
_LIBCPP_HIDE_FROM_ABI unordered_multimap& operator=(unordered_multimap&& __u)
|
|
1926
|
-
_NOEXCEPT_(is_nothrow_move_assignable<__table>::value);
|
|
1809
|
+
_LIBCPP_HIDE_FROM_ABI unordered_multimap& operator=(unordered_multimap&& __u) = default;
|
|
1927
1810
|
_LIBCPP_HIDE_FROM_ABI unordered_multimap& operator=(initializer_list<value_type> __il);
|
|
1928
1811
|
# endif // _LIBCPP_CXX03_LANG
|
|
1929
1812
|
|
|
1930
|
-
_LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT {
|
|
1813
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT {
|
|
1931
1814
|
return allocator_type(__table_.__node_alloc());
|
|
1932
1815
|
}
|
|
1933
1816
|
|
|
1934
1817
|
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool empty() const _NOEXCEPT { return __table_.size() == 0; }
|
|
1935
|
-
_LIBCPP_HIDE_FROM_ABI size_type size() const _NOEXCEPT { return __table_.size(); }
|
|
1936
|
-
_LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT { return __table_.max_size(); }
|
|
1818
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type size() const _NOEXCEPT { return __table_.size(); }
|
|
1819
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT { return __table_.max_size(); }
|
|
1937
1820
|
|
|
1938
|
-
_LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT { return __table_.begin(); }
|
|
1939
|
-
_LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT { return __table_.end(); }
|
|
1940
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT { return __table_.begin(); }
|
|
1941
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT { return __table_.end(); }
|
|
1942
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT { return __table_.begin(); }
|
|
1943
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT { return __table_.end(); }
|
|
1821
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT { return __table_.begin(); }
|
|
1822
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT { return __table_.end(); }
|
|
1823
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT { return __table_.begin(); }
|
|
1824
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT { return __table_.end(); }
|
|
1825
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT { return __table_.begin(); }
|
|
1826
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT { return __table_.end(); }
|
|
1944
1827
|
|
|
1945
1828
|
_LIBCPP_HIDE_FROM_ABI iterator insert(const value_type& __x) { return __table_.__emplace_multi(__x); }
|
|
1946
1829
|
|
|
@@ -2008,10 +1891,10 @@ public:
|
|
|
2008
1891
|
"node_type with incompatible allocator passed to unordered_multimap::insert()");
|
|
2009
1892
|
return __table_.template __node_handle_insert_multi<node_type>(__hint.__i_, std::move(__nh));
|
|
2010
1893
|
}
|
|
2011
|
-
_LIBCPP_HIDE_FROM_ABI node_type extract(key_type const& __key) {
|
|
1894
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI node_type extract(key_type const& __key) {
|
|
2012
1895
|
return __table_.template __node_handle_extract<node_type>(__key);
|
|
2013
1896
|
}
|
|
2014
|
-
_LIBCPP_HIDE_FROM_ABI node_type extract(const_iterator __it) {
|
|
1897
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI node_type extract(const_iterator __it) {
|
|
2015
1898
|
return __table_.template __node_handle_extract<node_type>(__it.__i_);
|
|
2016
1899
|
}
|
|
2017
1900
|
|
|
@@ -2045,71 +1928,83 @@ public:
|
|
|
2045
1928
|
__table_.swap(__u.__table_);
|
|
2046
1929
|
}
|
|
2047
1930
|
|
|
2048
|
-
_LIBCPP_HIDE_FROM_ABI hasher hash_function() const {
|
|
2049
|
-
|
|
1931
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI hasher hash_function() const {
|
|
1932
|
+
return __table_.hash_function().hash_function();
|
|
1933
|
+
}
|
|
1934
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI key_equal key_eq() const { return __table_.key_eq().key_eq(); }
|
|
2050
1935
|
|
|
2051
|
-
_LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __k) { return __table_.find(__k); }
|
|
2052
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __k) const { return __table_.find(__k); }
|
|
1936
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI iterator find(const key_type& __k) { return __table_.find(__k); }
|
|
1937
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator find(const key_type& __k) const { return __table_.find(__k); }
|
|
2053
1938
|
# if _LIBCPP_STD_VER >= 20
|
|
2054
1939
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
2055
|
-
_LIBCPP_HIDE_FROM_ABI iterator find(const _K2& __k) {
|
|
1940
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI iterator find(const _K2& __k) {
|
|
2056
1941
|
return __table_.find(__k);
|
|
2057
1942
|
}
|
|
2058
1943
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
2059
|
-
_LIBCPP_HIDE_FROM_ABI const_iterator find(const _K2& __k) const {
|
|
1944
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_iterator find(const _K2& __k) const {
|
|
2060
1945
|
return __table_.find(__k);
|
|
2061
1946
|
}
|
|
2062
1947
|
# endif // _LIBCPP_STD_VER >= 20
|
|
2063
1948
|
|
|
2064
|
-
_LIBCPP_HIDE_FROM_ABI size_type count(const key_type& __k) const {
|
|
1949
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type count(const key_type& __k) const {
|
|
1950
|
+
return __table_.__count_multi(__k);
|
|
1951
|
+
}
|
|
2065
1952
|
# if _LIBCPP_STD_VER >= 20
|
|
2066
1953
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
2067
|
-
_LIBCPP_HIDE_FROM_ABI size_type count(const _K2& __k) const {
|
|
1954
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type count(const _K2& __k) const {
|
|
2068
1955
|
return __table_.__count_multi(__k);
|
|
2069
1956
|
}
|
|
2070
1957
|
# endif // _LIBCPP_STD_VER >= 20
|
|
2071
1958
|
|
|
2072
1959
|
# if _LIBCPP_STD_VER >= 20
|
|
2073
|
-
_LIBCPP_HIDE_FROM_ABI bool contains(const key_type& __k) const { return find(__k) != end(); }
|
|
1960
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool contains(const key_type& __k) const { return find(__k) != end(); }
|
|
2074
1961
|
|
|
2075
1962
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
2076
|
-
_LIBCPP_HIDE_FROM_ABI bool contains(const _K2& __k) const {
|
|
1963
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool contains(const _K2& __k) const {
|
|
2077
1964
|
return find(__k) != end();
|
|
2078
1965
|
}
|
|
2079
1966
|
# endif // _LIBCPP_STD_VER >= 20
|
|
2080
1967
|
|
|
2081
|
-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const key_type& __k) {
|
|
1968
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const key_type& __k) {
|
|
2082
1969
|
return __table_.__equal_range_multi(__k);
|
|
2083
1970
|
}
|
|
2084
|
-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const key_type& __k) const {
|
|
1971
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const key_type& __k) const {
|
|
2085
1972
|
return __table_.__equal_range_multi(__k);
|
|
2086
1973
|
}
|
|
2087
1974
|
# if _LIBCPP_STD_VER >= 20
|
|
2088
1975
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
2089
|
-
_LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const _K2& __k) {
|
|
1976
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range(const _K2& __k) {
|
|
2090
1977
|
return __table_.__equal_range_multi(__k);
|
|
2091
1978
|
}
|
|
2092
1979
|
template <class _K2, enable_if_t<__is_transparent_v<hasher, _K2> && __is_transparent_v<key_equal, _K2>>* = nullptr>
|
|
2093
|
-
_LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const _K2& __k) const {
|
|
1980
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range(const _K2& __k) const {
|
|
2094
1981
|
return __table_.__equal_range_multi(__k);
|
|
2095
1982
|
}
|
|
2096
1983
|
# endif // _LIBCPP_STD_VER >= 20
|
|
2097
1984
|
|
|
2098
|
-
_LIBCPP_HIDE_FROM_ABI size_type bucket_count() const _NOEXCEPT { return __table_.bucket_count(); }
|
|
2099
|
-
_LIBCPP_HIDE_FROM_ABI size_type max_bucket_count() const _NOEXCEPT {
|
|
1985
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type bucket_count() const _NOEXCEPT { return __table_.bucket_count(); }
|
|
1986
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type max_bucket_count() const _NOEXCEPT {
|
|
1987
|
+
return __table_.max_bucket_count();
|
|
1988
|
+
}
|
|
2100
1989
|
|
|
2101
|
-
_LIBCPP_HIDE_FROM_ABI size_type bucket_size(size_type __n) const {
|
|
2102
|
-
|
|
1990
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type bucket_size(size_type __n) const {
|
|
1991
|
+
return __table_.bucket_size(__n);
|
|
1992
|
+
}
|
|
1993
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type bucket(const key_type& __k) const { return __table_.bucket(__k); }
|
|
2103
1994
|
|
|
2104
|
-
_LIBCPP_HIDE_FROM_ABI local_iterator begin(size_type __n) { return __table_.begin(__n); }
|
|
2105
|
-
_LIBCPP_HIDE_FROM_ABI local_iterator end(size_type __n) { return __table_.end(__n); }
|
|
2106
|
-
_LIBCPP_HIDE_FROM_ABI const_local_iterator begin(size_type __n) const {
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
_LIBCPP_HIDE_FROM_ABI const_local_iterator
|
|
1995
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI local_iterator begin(size_type __n) { return __table_.begin(__n); }
|
|
1996
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI local_iterator end(size_type __n) { return __table_.end(__n); }
|
|
1997
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator begin(size_type __n) const {
|
|
1998
|
+
return __table_.cbegin(__n);
|
|
1999
|
+
}
|
|
2000
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator end(size_type __n) const { return __table_.cend(__n); }
|
|
2001
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator cbegin(size_type __n) const {
|
|
2002
|
+
return __table_.cbegin(__n);
|
|
2003
|
+
}
|
|
2004
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_local_iterator cend(size_type __n) const { return __table_.cend(__n); }
|
|
2110
2005
|
|
|
2111
|
-
_LIBCPP_HIDE_FROM_ABI float load_factor() const _NOEXCEPT { return __table_.load_factor(); }
|
|
2112
|
-
_LIBCPP_HIDE_FROM_ABI float max_load_factor() const _NOEXCEPT { return __table_.max_load_factor(); }
|
|
2006
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI float load_factor() const _NOEXCEPT { return __table_.load_factor(); }
|
|
2007
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI float max_load_factor() const _NOEXCEPT { return __table_.max_load_factor(); }
|
|
2113
2008
|
_LIBCPP_HIDE_FROM_ABI void max_load_factor(float __mlf) { __table_.max_load_factor(__mlf); }
|
|
2114
2009
|
_LIBCPP_HIDE_FROM_ABI void rehash(size_type __n) { __table_.__rehash_multi(__n); }
|
|
2115
2010
|
_LIBCPP_HIDE_FROM_ABI void reserve(size_type __n) { __table_.__reserve_multi(__n); }
|
|
@@ -2121,10 +2016,10 @@ template <class _InputIterator,
|
|
|
2121
2016
|
class _Pred = equal_to<__iter_key_type<_InputIterator>>,
|
|
2122
2017
|
class _Allocator = allocator<__iter_to_alloc_type<_InputIterator>>,
|
|
2123
2018
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
2124
|
-
class = enable_if_t<!
|
|
2019
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
2125
2020
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
2126
|
-
class = enable_if_t<!
|
|
2127
|
-
class = enable_if_t<
|
|
2021
|
+
class = enable_if_t<!__is_allocator_v<_Pred>>,
|
|
2022
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2128
2023
|
unordered_multimap(_InputIterator,
|
|
2129
2024
|
_InputIterator,
|
|
2130
2025
|
typename allocator_traits<_Allocator>::size_type = 0,
|
|
@@ -2142,10 +2037,10 @@ template <ranges::input_range _Range,
|
|
|
2142
2037
|
class _Hash = hash<__range_key_type<_Range>>,
|
|
2143
2038
|
class _Pred = equal_to<__range_key_type<_Range>>,
|
|
2144
2039
|
class _Allocator = allocator<__range_to_alloc_type<_Range>>,
|
|
2145
|
-
class = enable_if_t<!
|
|
2040
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
2146
2041
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
2147
|
-
class = enable_if_t<!
|
|
2148
|
-
class = enable_if_t<
|
|
2042
|
+
class = enable_if_t<!__is_allocator_v<_Pred>>,
|
|
2043
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2149
2044
|
unordered_multimap(from_range_t,
|
|
2150
2045
|
_Range&&,
|
|
2151
2046
|
typename allocator_traits<_Allocator>::size_type = 0,
|
|
@@ -2160,21 +2055,21 @@ template <class _Key,
|
|
|
2160
2055
|
class _Hash = hash<remove_const_t<_Key>>,
|
|
2161
2056
|
class _Pred = equal_to<remove_const_t<_Key>>,
|
|
2162
2057
|
class _Allocator = allocator<pair<const _Key, _Tp>>,
|
|
2163
|
-
class = enable_if_t<!
|
|
2058
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
2164
2059
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
2165
|
-
class = enable_if_t<!
|
|
2166
|
-
class = enable_if_t<
|
|
2167
|
-
unordered_multimap(
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2060
|
+
class = enable_if_t<!__is_allocator_v<_Pred>>,
|
|
2061
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2062
|
+
unordered_multimap(initializer_list<pair<_Key, _Tp>>,
|
|
2063
|
+
typename allocator_traits<_Allocator>::size_type = 0,
|
|
2064
|
+
_Hash = _Hash(),
|
|
2065
|
+
_Pred = _Pred(),
|
|
2066
|
+
_Allocator = _Allocator())
|
|
2067
|
+
-> unordered_multimap<remove_const_t<_Key>, _Tp, _Hash, _Pred, _Allocator>;
|
|
2173
2068
|
|
|
2174
2069
|
template <class _InputIterator,
|
|
2175
2070
|
class _Allocator,
|
|
2176
2071
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
2177
|
-
class = enable_if_t<
|
|
2072
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2178
2073
|
unordered_multimap(_InputIterator, _InputIterator, typename allocator_traits<_Allocator>::size_type, _Allocator)
|
|
2179
2074
|
-> unordered_multimap<__iter_key_type<_InputIterator>,
|
|
2180
2075
|
__iter_mapped_type<_InputIterator>,
|
|
@@ -2185,7 +2080,7 @@ unordered_multimap(_InputIterator, _InputIterator, typename allocator_traits<_Al
|
|
|
2185
2080
|
template <class _InputIterator,
|
|
2186
2081
|
class _Allocator,
|
|
2187
2082
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
2188
|
-
class = enable_if_t<
|
|
2083
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2189
2084
|
unordered_multimap(_InputIterator, _InputIterator, _Allocator)
|
|
2190
2085
|
-> unordered_multimap<__iter_key_type<_InputIterator>,
|
|
2191
2086
|
__iter_mapped_type<_InputIterator>,
|
|
@@ -2197,9 +2092,9 @@ template <class _InputIterator,
|
|
|
2197
2092
|
class _Hash,
|
|
2198
2093
|
class _Allocator,
|
|
2199
2094
|
class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
|
|
2200
|
-
class = enable_if_t<!
|
|
2095
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
2201
2096
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
2202
|
-
class = enable_if_t<
|
|
2097
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2203
2098
|
unordered_multimap(_InputIterator, _InputIterator, typename allocator_traits<_Allocator>::size_type, _Hash, _Allocator)
|
|
2204
2099
|
-> unordered_multimap<__iter_key_type<_InputIterator>,
|
|
2205
2100
|
__iter_mapped_type<_InputIterator>,
|
|
@@ -2209,7 +2104,7 @@ unordered_multimap(_InputIterator, _InputIterator, typename allocator_traits<_Al
|
|
|
2209
2104
|
|
|
2210
2105
|
# if _LIBCPP_STD_VER >= 23
|
|
2211
2106
|
|
|
2212
|
-
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<
|
|
2107
|
+
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2213
2108
|
unordered_multimap(from_range_t, _Range&&, typename allocator_traits<_Allocator>::size_type, _Allocator)
|
|
2214
2109
|
-> unordered_multimap<__range_key_type<_Range>,
|
|
2215
2110
|
__range_mapped_type<_Range>,
|
|
@@ -2217,7 +2112,7 @@ unordered_multimap(from_range_t, _Range&&, typename allocator_traits<_Allocator>
|
|
|
2217
2112
|
equal_to<__range_key_type<_Range>>,
|
|
2218
2113
|
_Allocator>;
|
|
2219
2114
|
|
|
2220
|
-
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<
|
|
2115
|
+
template <ranges::input_range _Range, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2221
2116
|
unordered_multimap(from_range_t, _Range&&, _Allocator)
|
|
2222
2117
|
-> unordered_multimap<__range_key_type<_Range>,
|
|
2223
2118
|
__range_mapped_type<_Range>,
|
|
@@ -2228,9 +2123,9 @@ unordered_multimap(from_range_t, _Range&&, _Allocator)
|
|
|
2228
2123
|
template <ranges::input_range _Range,
|
|
2229
2124
|
class _Hash,
|
|
2230
2125
|
class _Allocator,
|
|
2231
|
-
class = enable_if_t<!
|
|
2126
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
2232
2127
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
2233
|
-
class = enable_if_t<
|
|
2128
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2234
2129
|
unordered_multimap(from_range_t, _Range&&, typename allocator_traits<_Allocator>::size_type, _Hash, _Allocator)
|
|
2235
2130
|
-> unordered_multimap<__range_key_type<_Range>,
|
|
2236
2131
|
__range_mapped_type<_Range>,
|
|
@@ -2240,7 +2135,7 @@ unordered_multimap(from_range_t, _Range&&, typename allocator_traits<_Allocator>
|
|
|
2240
2135
|
|
|
2241
2136
|
# endif
|
|
2242
2137
|
|
|
2243
|
-
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<
|
|
2138
|
+
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2244
2139
|
unordered_multimap(initializer_list<pair<_Key, _Tp>>, typename allocator_traits<_Allocator>::size_type, _Allocator)
|
|
2245
2140
|
-> unordered_multimap<remove_const_t<_Key>,
|
|
2246
2141
|
_Tp,
|
|
@@ -2248,7 +2143,7 @@ unordered_multimap(initializer_list<pair<_Key, _Tp>>, typename allocator_traits<
|
|
|
2248
2143
|
equal_to<remove_const_t<_Key>>,
|
|
2249
2144
|
_Allocator>;
|
|
2250
2145
|
|
|
2251
|
-
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<
|
|
2146
|
+
template <class _Key, class _Tp, class _Allocator, class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2252
2147
|
unordered_multimap(initializer_list<pair<_Key, _Tp>>, _Allocator)
|
|
2253
2148
|
-> unordered_multimap<remove_const_t<_Key>,
|
|
2254
2149
|
_Tp,
|
|
@@ -2260,9 +2155,9 @@ template <class _Key,
|
|
|
2260
2155
|
class _Tp,
|
|
2261
2156
|
class _Hash,
|
|
2262
2157
|
class _Allocator,
|
|
2263
|
-
class = enable_if_t<!
|
|
2158
|
+
class = enable_if_t<!__is_allocator_v<_Hash>>,
|
|
2264
2159
|
class = enable_if_t<!is_integral<_Hash>::value>,
|
|
2265
|
-
class = enable_if_t<
|
|
2160
|
+
class = enable_if_t<__is_allocator_v<_Allocator>>>
|
|
2266
2161
|
unordered_multimap(
|
|
2267
2162
|
initializer_list<pair<_Key, _Tp>>, typename allocator_traits<_Allocator>::size_type, _Hash, _Allocator)
|
|
2268
2163
|
-> unordered_multimap<remove_const_t<_Key>, _Tp, _Hash, equal_to<remove_const_t<_Key>>, _Allocator>;
|
|
@@ -2315,13 +2210,6 @@ template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
|
2315
2210
|
inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(const allocator_type& __a)
|
|
2316
2211
|
: __table_(typename __table::allocator_type(__a)) {}
|
|
2317
2212
|
|
|
2318
|
-
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
2319
|
-
unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(const unordered_multimap& __u)
|
|
2320
|
-
: __table_(__u.__table_) {
|
|
2321
|
-
__table_.__rehash_multi(__u.bucket_count());
|
|
2322
|
-
insert(__u.begin(), __u.end());
|
|
2323
|
-
}
|
|
2324
|
-
|
|
2325
2213
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
2326
2214
|
unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
|
2327
2215
|
const unordered_multimap& __u, const allocator_type& __a)
|
|
@@ -2332,11 +2220,6 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
|
|
2332
2220
|
|
|
2333
2221
|
# ifndef _LIBCPP_CXX03_LANG
|
|
2334
2222
|
|
|
2335
|
-
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
2336
|
-
inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(unordered_multimap&& __u)
|
|
2337
|
-
_NOEXCEPT_(is_nothrow_move_constructible<__table>::value)
|
|
2338
|
-
: __table_(std::move(__u.__table_)) {}
|
|
2339
|
-
|
|
2340
2223
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
2341
2224
|
unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
|
2342
2225
|
unordered_multimap&& __u, const allocator_type& __a)
|
|
@@ -2373,14 +2256,6 @@ unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(
|
|
|
2373
2256
|
insert(__il.begin(), __il.end());
|
|
2374
2257
|
}
|
|
2375
2258
|
|
|
2376
|
-
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
2377
|
-
inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&
|
|
2378
|
-
unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(unordered_multimap&& __u)
|
|
2379
|
-
_NOEXCEPT_(is_nothrow_move_assignable<__table>::value) {
|
|
2380
|
-
__table_ = std::move(__u.__table_);
|
|
2381
|
-
return *this;
|
|
2382
|
-
}
|
|
2383
|
-
|
|
2384
2259
|
template <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>
|
|
2385
2260
|
inline unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&
|
|
2386
2261
|
unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(initializer_list<value_type> __il) {
|