@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.215
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/stdlib.zig +32 -22
- package/compiler/aro/aro/Compilation.zig +0 -3
- package/compiler/translate-c/ast.zig +5 -2
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +1 -22
- package/docs/wasm/markdown/Parser.zig +5 -9
- 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/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/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 +40 -19
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +60 -22
- 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/Step/Compile.zig +18 -19
- package/std/Build/Step/Run.zig +13 -6
- package/std/Build/Step.zig +0 -3
- package/std/Io/Threaded.zig +3 -0
- 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 +11 -2
- package/std/c.zig +7 -0
- package/std/debug/Dwarf.zig +14 -11
- package/std/debug/Pdb.zig +24 -16
- package/std/hash/xxhash.zig +0 -6
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +0 -1
- package/std/mem.zig +1 -2
- package/std/os/linux/x86.zig +2 -2
- package/std/os/windows.zig +130 -1
- package/std/simd.zig +4 -21
- package/std/start.zig +4 -3
- package/std/zig/Ast.zig +5 -7
- package/std/zig/AstGen.zig +20 -14
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/ZonGen.zig +13 -21
- package/std/zig/llvm/Builder.zig +2 -2
- 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/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/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
|
@@ -32,7 +32,6 @@
|
|
|
32
32
|
#include <__type_traits/is_trivially_assignable.h>
|
|
33
33
|
#include <__type_traits/is_trivially_constructible.h>
|
|
34
34
|
#include <__type_traits/is_trivially_relocatable.h>
|
|
35
|
-
#include <__type_traits/is_unbounded_array.h>
|
|
36
35
|
#include <__type_traits/remove_const.h>
|
|
37
36
|
#include <__type_traits/remove_extent.h>
|
|
38
37
|
#include <__utility/exception_guard.h>
|
|
@@ -61,17 +60,10 @@ template <class _ValueType, class _InputIterator, class _Sentinel1, class _Forwa
|
|
|
61
60
|
inline _LIBCPP_HIDE_FROM_ABI pair<_InputIterator, _ForwardIterator> __uninitialized_copy(
|
|
62
61
|
_InputIterator __ifirst, _Sentinel1 __ilast, _ForwardIterator __ofirst, _EndPredicate __stop_copying) {
|
|
63
62
|
_ForwardIterator __idx = __ofirst;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(*__ifirst);
|
|
69
|
-
#if _LIBCPP_HAS_EXCEPTIONS
|
|
70
|
-
} catch (...) {
|
|
71
|
-
std::__destroy(__ofirst, __idx);
|
|
72
|
-
throw;
|
|
73
|
-
}
|
|
74
|
-
#endif
|
|
63
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__ofirst, __idx); });
|
|
64
|
+
for (; __ifirst != __ilast && !__stop_copying(__idx); ++__ifirst, (void)++__idx)
|
|
65
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(*__ifirst);
|
|
66
|
+
__guard.__complete();
|
|
75
67
|
|
|
76
68
|
return pair<_InputIterator, _ForwardIterator>(std::move(__ifirst), std::move(__idx));
|
|
77
69
|
}
|
|
@@ -91,17 +83,10 @@ template <class _ValueType, class _InputIterator, class _Size, class _ForwardIte
|
|
|
91
83
|
inline _LIBCPP_HIDE_FROM_ABI pair<_InputIterator, _ForwardIterator>
|
|
92
84
|
__uninitialized_copy_n(_InputIterator __ifirst, _Size __n, _ForwardIterator __ofirst, _EndPredicate __stop_copying) {
|
|
93
85
|
_ForwardIterator __idx = __ofirst;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(*__ifirst);
|
|
99
|
-
#if _LIBCPP_HAS_EXCEPTIONS
|
|
100
|
-
} catch (...) {
|
|
101
|
-
std::__destroy(__ofirst, __idx);
|
|
102
|
-
throw;
|
|
103
|
-
}
|
|
104
|
-
#endif
|
|
86
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__ofirst, __idx); });
|
|
87
|
+
for (; __n > 0 && !__stop_copying(__idx); ++__ifirst, (void)++__idx, (void)--__n)
|
|
88
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(*__ifirst);
|
|
89
|
+
__guard.__complete();
|
|
105
90
|
|
|
106
91
|
return pair<_InputIterator, _ForwardIterator>(std::move(__ifirst), std::move(__idx));
|
|
107
92
|
}
|
|
@@ -121,17 +106,10 @@ template <class _ValueType, class _ForwardIterator, class _Sentinel, class _Tp>
|
|
|
121
106
|
inline _LIBCPP_HIDE_FROM_ABI _ForwardIterator
|
|
122
107
|
__uninitialized_fill(_ForwardIterator __first, _Sentinel __last, const _Tp& __x) {
|
|
123
108
|
_ForwardIterator __idx = __first;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__x);
|
|
129
|
-
#if _LIBCPP_HAS_EXCEPTIONS
|
|
130
|
-
} catch (...) {
|
|
131
|
-
std::__destroy(__first, __idx);
|
|
132
|
-
throw;
|
|
133
|
-
}
|
|
134
|
-
#endif
|
|
109
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__first, __idx); });
|
|
110
|
+
for (; __idx != __last; ++__idx)
|
|
111
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__x);
|
|
112
|
+
__guard.__complete();
|
|
135
113
|
|
|
136
114
|
return __idx;
|
|
137
115
|
}
|
|
@@ -149,17 +127,10 @@ template <class _ValueType, class _ForwardIterator, class _Size, class _Tp>
|
|
|
149
127
|
inline _LIBCPP_HIDE_FROM_ABI _ForwardIterator
|
|
150
128
|
__uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) {
|
|
151
129
|
_ForwardIterator __idx = __first;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__x);
|
|
157
|
-
#if _LIBCPP_HAS_EXCEPTIONS
|
|
158
|
-
} catch (...) {
|
|
159
|
-
std::__destroy(__first, __idx);
|
|
160
|
-
throw;
|
|
161
|
-
}
|
|
162
|
-
#endif
|
|
130
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__first, __idx); });
|
|
131
|
+
for (; __n > 0; ++__idx, (void)--__n)
|
|
132
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__x);
|
|
133
|
+
__guard.__complete();
|
|
163
134
|
|
|
164
135
|
return __idx;
|
|
165
136
|
}
|
|
@@ -178,18 +149,11 @@ uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) {
|
|
|
178
149
|
template <class _ValueType, class _ForwardIterator, class _Sentinel>
|
|
179
150
|
inline _LIBCPP_HIDE_FROM_ABI _ForwardIterator
|
|
180
151
|
__uninitialized_default_construct(_ForwardIterator __first, _Sentinel __last) {
|
|
181
|
-
auto __idx
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType;
|
|
187
|
-
# if _LIBCPP_HAS_EXCEPTIONS
|
|
188
|
-
} catch (...) {
|
|
189
|
-
std::__destroy(__first, __idx);
|
|
190
|
-
throw;
|
|
191
|
-
}
|
|
192
|
-
# endif
|
|
152
|
+
auto __idx = __first;
|
|
153
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__first, __idx); });
|
|
154
|
+
for (; __idx != __last; ++__idx)
|
|
155
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType;
|
|
156
|
+
__guard.__complete();
|
|
193
157
|
|
|
194
158
|
return __idx;
|
|
195
159
|
}
|
|
@@ -205,17 +169,10 @@ inline _LIBCPP_HIDE_FROM_ABI void uninitialized_default_construct(_ForwardIterat
|
|
|
205
169
|
template <class _ValueType, class _ForwardIterator, class _Size>
|
|
206
170
|
inline _LIBCPP_HIDE_FROM_ABI _ForwardIterator __uninitialized_default_construct_n(_ForwardIterator __first, _Size __n) {
|
|
207
171
|
auto __idx = __first;
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType;
|
|
213
|
-
# if _LIBCPP_HAS_EXCEPTIONS
|
|
214
|
-
} catch (...) {
|
|
215
|
-
std::__destroy(__first, __idx);
|
|
216
|
-
throw;
|
|
217
|
-
}
|
|
218
|
-
# endif
|
|
172
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__first, __idx); });
|
|
173
|
+
for (; __n > 0; ++__idx, (void)--__n)
|
|
174
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType;
|
|
175
|
+
__guard.__complete();
|
|
219
176
|
|
|
220
177
|
return __idx;
|
|
221
178
|
}
|
|
@@ -231,18 +188,11 @@ inline _LIBCPP_HIDE_FROM_ABI _ForwardIterator uninitialized_default_construct_n(
|
|
|
231
188
|
template <class _ValueType, class _ForwardIterator, class _Sentinel>
|
|
232
189
|
inline _LIBCPP_HIDE_FROM_ABI _ForwardIterator
|
|
233
190
|
__uninitialized_value_construct(_ForwardIterator __first, _Sentinel __last) {
|
|
234
|
-
auto __idx
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType();
|
|
240
|
-
# if _LIBCPP_HAS_EXCEPTIONS
|
|
241
|
-
} catch (...) {
|
|
242
|
-
std::__destroy(__first, __idx);
|
|
243
|
-
throw;
|
|
244
|
-
}
|
|
245
|
-
# endif
|
|
191
|
+
auto __idx = __first;
|
|
192
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__first, __idx); });
|
|
193
|
+
for (; __idx != __last; ++__idx)
|
|
194
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType();
|
|
195
|
+
__guard.__complete();
|
|
246
196
|
|
|
247
197
|
return __idx;
|
|
248
198
|
}
|
|
@@ -258,17 +208,10 @@ inline _LIBCPP_HIDE_FROM_ABI void uninitialized_value_construct(_ForwardIterator
|
|
|
258
208
|
template <class _ValueType, class _ForwardIterator, class _Size>
|
|
259
209
|
inline _LIBCPP_HIDE_FROM_ABI _ForwardIterator __uninitialized_value_construct_n(_ForwardIterator __first, _Size __n) {
|
|
260
210
|
auto __idx = __first;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType();
|
|
266
|
-
# if _LIBCPP_HAS_EXCEPTIONS
|
|
267
|
-
} catch (...) {
|
|
268
|
-
std::__destroy(__first, __idx);
|
|
269
|
-
throw;
|
|
270
|
-
}
|
|
271
|
-
# endif
|
|
211
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__first, __idx); });
|
|
212
|
+
for (; __n > 0; ++__idx, (void)--__n)
|
|
213
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType();
|
|
214
|
+
__guard.__complete();
|
|
272
215
|
|
|
273
216
|
return __idx;
|
|
274
217
|
}
|
|
@@ -293,19 +236,12 @@ inline _LIBCPP_HIDE_FROM_ABI pair<_InputIterator, _ForwardIterator> __uninitiali
|
|
|
293
236
|
_ForwardIterator __ofirst,
|
|
294
237
|
_EndPredicate __stop_moving,
|
|
295
238
|
_IterMove __iter_move) {
|
|
296
|
-
auto __idx
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
for (; __ifirst != __ilast && !__stop_moving(__idx); ++__idx, (void)++__ifirst) {
|
|
301
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__iter_move(__ifirst));
|
|
302
|
-
}
|
|
303
|
-
# if _LIBCPP_HAS_EXCEPTIONS
|
|
304
|
-
} catch (...) {
|
|
305
|
-
std::__destroy(__ofirst, __idx);
|
|
306
|
-
throw;
|
|
239
|
+
auto __idx = __ofirst;
|
|
240
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__ofirst, __idx); });
|
|
241
|
+
for (; __ifirst != __ilast && !__stop_moving(__idx); ++__idx, (void)++__ifirst) {
|
|
242
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__iter_move(__ifirst));
|
|
307
243
|
}
|
|
308
|
-
|
|
244
|
+
__guard.__complete();
|
|
309
245
|
|
|
310
246
|
return {std::move(__ifirst), std::move(__idx)};
|
|
311
247
|
}
|
|
@@ -331,18 +267,11 @@ template <class _ValueType,
|
|
|
331
267
|
class _IterMove>
|
|
332
268
|
inline _LIBCPP_HIDE_FROM_ABI pair<_InputIterator, _ForwardIterator> __uninitialized_move_n(
|
|
333
269
|
_InputIterator __ifirst, _Size __n, _ForwardIterator __ofirst, _EndPredicate __stop_moving, _IterMove __iter_move) {
|
|
334
|
-
auto __idx
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__iter_move(__ifirst));
|
|
340
|
-
# if _LIBCPP_HAS_EXCEPTIONS
|
|
341
|
-
} catch (...) {
|
|
342
|
-
std::__destroy(__ofirst, __idx);
|
|
343
|
-
throw;
|
|
344
|
-
}
|
|
345
|
-
# endif
|
|
270
|
+
auto __idx = __ofirst;
|
|
271
|
+
auto __guard = std::__make_exception_guard([&] { std::__destroy(__ofirst, __idx); });
|
|
272
|
+
for (; __n > 0 && !__stop_moving(__idx); ++__idx, (void)++__ifirst, --__n)
|
|
273
|
+
::new (static_cast<void*>(std::addressof(*__idx))) _ValueType(__iter_move(__ifirst));
|
|
274
|
+
__guard.__complete();
|
|
346
275
|
|
|
347
276
|
return {std::move(__ifirst), std::move(__idx)};
|
|
348
277
|
}
|
|
@@ -32,18 +32,15 @@
|
|
|
32
32
|
#include <__type_traits/integral_constant.h>
|
|
33
33
|
#include <__type_traits/is_array.h>
|
|
34
34
|
#include <__type_traits/is_assignable.h>
|
|
35
|
-
#include <__type_traits/is_bounded_array.h>
|
|
36
35
|
#include <__type_traits/is_constant_evaluated.h>
|
|
37
36
|
#include <__type_traits/is_constructible.h>
|
|
38
37
|
#include <__type_traits/is_convertible.h>
|
|
39
38
|
#include <__type_traits/is_function.h>
|
|
40
39
|
#include <__type_traits/is_pointer.h>
|
|
41
40
|
#include <__type_traits/is_reference.h>
|
|
42
|
-
#include <__type_traits/is_replaceable.h>
|
|
43
41
|
#include <__type_traits/is_same.h>
|
|
44
42
|
#include <__type_traits/is_swappable.h>
|
|
45
43
|
#include <__type_traits/is_trivially_relocatable.h>
|
|
46
|
-
#include <__type_traits/is_unbounded_array.h>
|
|
47
44
|
#include <__type_traits/is_void.h>
|
|
48
45
|
#include <__type_traits/remove_extent.h>
|
|
49
46
|
#include <__type_traits/type_identity.h>
|
|
@@ -145,8 +142,6 @@ public:
|
|
|
145
142
|
__libcpp_is_trivially_relocatable<pointer>::value && __libcpp_is_trivially_relocatable<deleter_type>::value,
|
|
146
143
|
unique_ptr,
|
|
147
144
|
void>;
|
|
148
|
-
using __replaceable _LIBCPP_NODEBUG =
|
|
149
|
-
__conditional_t<__is_replaceable_v<pointer> && __is_replaceable_v<deleter_type>, unique_ptr, void>;
|
|
150
145
|
|
|
151
146
|
private:
|
|
152
147
|
_LIBCPP_COMPRESSED_PAIR(pointer, __ptr_, deleter_type, __deleter_);
|
|
@@ -263,14 +258,17 @@ public:
|
|
|
263
258
|
return *this;
|
|
264
259
|
}
|
|
265
260
|
|
|
266
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 __add_lvalue_reference_t<_Tp> operator*() const
|
|
261
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 __add_lvalue_reference_t<_Tp> operator*() const
|
|
267
262
|
_NOEXCEPT_(_NOEXCEPT_(*std::declval<pointer>())) {
|
|
268
263
|
return *__ptr_;
|
|
269
264
|
}
|
|
270
265
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 pointer operator->() const _NOEXCEPT { return __ptr_; }
|
|
271
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 pointer get() const _NOEXCEPT { return __ptr_; }
|
|
272
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 deleter_type& get_deleter() _NOEXCEPT {
|
|
273
|
-
|
|
266
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 pointer get() const _NOEXCEPT { return __ptr_; }
|
|
267
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 deleter_type& get_deleter() _NOEXCEPT {
|
|
268
|
+
return __deleter_;
|
|
269
|
+
}
|
|
270
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 const deleter_type&
|
|
271
|
+
get_deleter() const _NOEXCEPT {
|
|
274
272
|
return __deleter_;
|
|
275
273
|
}
|
|
276
274
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 explicit operator bool() const _NOEXCEPT {
|
|
@@ -413,8 +411,6 @@ public:
|
|
|
413
411
|
__libcpp_is_trivially_relocatable<pointer>::value && __libcpp_is_trivially_relocatable<deleter_type>::value,
|
|
414
412
|
unique_ptr,
|
|
415
413
|
void>;
|
|
416
|
-
using __replaceable _LIBCPP_NODEBUG =
|
|
417
|
-
__conditional_t<__is_replaceable_v<pointer> && __is_replaceable_v<deleter_type>, unique_ptr, void>;
|
|
418
414
|
|
|
419
415
|
private:
|
|
420
416
|
template <class _Up, class _OtherDeleter>
|
|
@@ -755,12 +751,13 @@ operator<=>(const unique_ptr<_T1, _D1>& __x, nullptr_t) {
|
|
|
755
751
|
#if _LIBCPP_STD_VER >= 14
|
|
756
752
|
|
|
757
753
|
template <class _Tp, class... _Args, enable_if_t<!is_array<_Tp>::value, int> = 0>
|
|
758
|
-
inline _LIBCPP_HIDE_FROM_ABI
|
|
754
|
+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI
|
|
755
|
+
_LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr<_Tp> make_unique(_Args&&... __args) {
|
|
759
756
|
return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...));
|
|
760
757
|
}
|
|
761
758
|
|
|
762
759
|
template <class _Tp, enable_if_t<__is_unbounded_array_v<_Tp>, int> = 0>
|
|
763
|
-
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr<_Tp> make_unique(size_t __n) {
|
|
760
|
+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr<_Tp> make_unique(size_t __n) {
|
|
764
761
|
typedef __remove_extent_t<_Tp> _Up;
|
|
765
762
|
return unique_ptr<_Tp>(__private_constructor_tag(), new _Up[__n](), __n);
|
|
766
763
|
}
|
|
@@ -773,12 +770,13 @@ void make_unique(_Args&&...) = delete;
|
|
|
773
770
|
#if _LIBCPP_STD_VER >= 20
|
|
774
771
|
|
|
775
772
|
template <class _Tp, enable_if_t<!is_array_v<_Tp>, int> = 0>
|
|
776
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr<_Tp> make_unique_for_overwrite() {
|
|
773
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr<_Tp> make_unique_for_overwrite() {
|
|
777
774
|
return unique_ptr<_Tp>(new _Tp);
|
|
778
775
|
}
|
|
779
776
|
|
|
780
777
|
template <class _Tp, enable_if_t<is_unbounded_array_v<_Tp>, int> = 0>
|
|
781
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr<_Tp>
|
|
778
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX23 unique_ptr<_Tp>
|
|
779
|
+
make_unique_for_overwrite(size_t __n) {
|
|
782
780
|
return unique_ptr<_Tp>(__private_constructor_tag(), new __remove_extent_t<_Tp>[__n], __n);
|
|
783
781
|
}
|
|
784
782
|
|
|
@@ -802,7 +800,7 @@ struct hash<__enable_hash_helper< unique_ptr<_Tp, _Dp>, typename unique_ptr<_Tp,
|
|
|
802
800
|
_LIBCPP_DEPRECATED_IN_CXX17 typedef size_t result_type;
|
|
803
801
|
#endif
|
|
804
802
|
|
|
805
|
-
_LIBCPP_HIDE_FROM_ABI size_t operator()(const unique_ptr<_Tp, _Dp>& __ptr) const {
|
|
803
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t operator()(const unique_ptr<_Tp, _Dp>& __ptr) const {
|
|
806
804
|
typedef typename unique_ptr<_Tp, _Dp>::pointer pointer;
|
|
807
805
|
return hash<pointer>()(__ptr.get());
|
|
808
806
|
}
|
|
@@ -42,7 +42,9 @@ public:
|
|
|
42
42
|
do_deallocate(__p, __bytes, __align);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
_LIBCPP_HIDE_FROM_ABI bool is_equal(const memory_resource& __other) const noexcept {
|
|
45
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI bool is_equal(const memory_resource& __other) const noexcept {
|
|
46
|
+
return do_is_equal(__other);
|
|
47
|
+
}
|
|
46
48
|
|
|
47
49
|
private:
|
|
48
50
|
virtual void* do_allocate(size_t, size_t) = 0;
|
|
@@ -68,7 +70,7 @@ operator!=(const memory_resource& __lhs, const memory_resource& __rhs) noexcept
|
|
|
68
70
|
|
|
69
71
|
// [mem.res.global]
|
|
70
72
|
|
|
71
|
-
[[__gnu__::__returns_nonnull__]] _LIBCPP_AVAILABILITY_PMR _LIBCPP_EXPORTED_FROM_ABI memory_resource*
|
|
73
|
+
[[nodiscard, __gnu__::__returns_nonnull__]] _LIBCPP_AVAILABILITY_PMR _LIBCPP_EXPORTED_FROM_ABI memory_resource*
|
|
72
74
|
get_default_resource() noexcept;
|
|
73
75
|
|
|
74
76
|
[[__gnu__::__returns_nonnull__]] _LIBCPP_AVAILABILITY_PMR _LIBCPP_EXPORTED_FROM_ABI memory_resource*
|
|
@@ -93,7 +93,7 @@ public:
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
_LIBCPP_HIDE_FROM_ABI memory_resource* upstream_resource() const { return __res_; }
|
|
96
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI memory_resource* upstream_resource() const { return __res_; }
|
|
97
97
|
|
|
98
98
|
protected:
|
|
99
99
|
void* do_allocate(size_t __bytes, size_t __alignment) override; // key function
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
#include <__new/exceptions.h>
|
|
19
19
|
#include <__new/placement_new_delete.h>
|
|
20
20
|
#include <__utility/exception_guard.h>
|
|
21
|
+
#include <__utility/piecewise_construct.h>
|
|
21
22
|
#include <limits>
|
|
22
23
|
#include <tuple>
|
|
23
24
|
|
|
@@ -50,7 +51,9 @@ public:
|
|
|
50
51
|
|
|
51
52
|
_LIBCPP_HIDE_FROM_ABI polymorphic_allocator() noexcept : __res_(std::pmr::get_default_resource()) {}
|
|
52
53
|
|
|
53
|
-
_LIBCPP_HIDE_FROM_ABI polymorphic_allocator(memory_resource* __r) noexcept : __res_(__r) {
|
|
54
|
+
_LIBCPP_HIDE_FROM_ABI polymorphic_allocator(memory_resource* _LIBCPP_DIAGNOSE_NULLPTR __r) noexcept : __res_(__r) {
|
|
55
|
+
_LIBCPP_ASSERT_NON_NULL(__r, "Attempted to pass a nullptr resource to polymorphic_alloator");
|
|
56
|
+
}
|
|
54
57
|
|
|
55
58
|
_LIBCPP_HIDE_FROM_ABI polymorphic_allocator(const polymorphic_allocator&) = default;
|
|
56
59
|
|
|
@@ -133,10 +136,10 @@ public:
|
|
|
133
136
|
piecewise_construct,
|
|
134
137
|
__transform_tuple(typename __uses_alloc_ctor< _T1, polymorphic_allocator&, _Args1... >::type(),
|
|
135
138
|
std::move(__x),
|
|
136
|
-
|
|
139
|
+
make_index_sequence<sizeof...(_Args1)>()),
|
|
137
140
|
__transform_tuple(typename __uses_alloc_ctor< _T2, polymorphic_allocator&, _Args2... >::type(),
|
|
138
141
|
std::move(__y),
|
|
139
|
-
|
|
142
|
+
make_index_sequence<sizeof...(_Args2)>()));
|
|
140
143
|
}
|
|
141
144
|
|
|
142
145
|
template <class _T1, class _T2>
|
|
@@ -170,11 +173,13 @@ public:
|
|
|
170
173
|
__p->~_Tp();
|
|
171
174
|
}
|
|
172
175
|
|
|
173
|
-
_LIBCPP_HIDE_FROM_ABI polymorphic_allocator select_on_container_copy_construction() const noexcept {
|
|
176
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI polymorphic_allocator select_on_container_copy_construction() const noexcept {
|
|
174
177
|
return polymorphic_allocator();
|
|
175
178
|
}
|
|
176
179
|
|
|
177
|
-
_LIBCPP_HIDE_FROM_ABI memory_resource* resource() const noexcept {
|
|
180
|
+
[[nodiscard, __gnu__::__returns_nonnull__]] _LIBCPP_HIDE_FROM_ABI memory_resource* resource() const noexcept {
|
|
181
|
+
return __res_;
|
|
182
|
+
}
|
|
178
183
|
|
|
179
184
|
_LIBCPP_HIDE_FROM_ABI friend bool
|
|
180
185
|
operator==(const polymorphic_allocator& __lhs, const polymorphic_allocator& __rhs) noexcept {
|
|
@@ -192,20 +197,20 @@ public:
|
|
|
192
197
|
private:
|
|
193
198
|
template <class... _Args, size_t... _Is>
|
|
194
199
|
_LIBCPP_HIDE_FROM_ABI tuple<_Args&&...>
|
|
195
|
-
__transform_tuple(integral_constant<int, 0>, tuple<_Args...>&& __t,
|
|
200
|
+
__transform_tuple(integral_constant<int, 0>, tuple<_Args...>&& __t, index_sequence<_Is...>) {
|
|
196
201
|
return std::forward_as_tuple(std::get<_Is>(std::move(__t))...);
|
|
197
202
|
}
|
|
198
203
|
|
|
199
204
|
template <class... _Args, size_t... _Is>
|
|
200
205
|
_LIBCPP_HIDE_FROM_ABI tuple<allocator_arg_t const&, polymorphic_allocator&, _Args&&...>
|
|
201
|
-
__transform_tuple(integral_constant<int, 1>, tuple<_Args...>&& __t,
|
|
206
|
+
__transform_tuple(integral_constant<int, 1>, tuple<_Args...>&& __t, index_sequence<_Is...>) {
|
|
202
207
|
using _Tup = tuple<allocator_arg_t const&, polymorphic_allocator&, _Args&&...>;
|
|
203
208
|
return _Tup(allocator_arg, *this, std::get<_Is>(std::move(__t))...);
|
|
204
209
|
}
|
|
205
210
|
|
|
206
211
|
template <class... _Args, size_t... _Is>
|
|
207
212
|
_LIBCPP_HIDE_FROM_ABI tuple<_Args&&..., polymorphic_allocator&>
|
|
208
|
-
__transform_tuple(integral_constant<int, 2>, tuple<_Args...>&& __t,
|
|
213
|
+
__transform_tuple(integral_constant<int, 2>, tuple<_Args...>&& __t, index_sequence<_Is...>) {
|
|
209
214
|
using _Tup = tuple<_Args&&..., polymorphic_allocator&>;
|
|
210
215
|
return _Tup(std::get<_Is>(std::move(__t))..., *this);
|
|
211
216
|
}
|
|
@@ -56,9 +56,11 @@ public:
|
|
|
56
56
|
__unsync_.release();
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
_LIBCPP_HIDE_FROM_ABI memory_resource* upstream_resource() const {
|
|
59
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI memory_resource* upstream_resource() const {
|
|
60
|
+
return __unsync_.upstream_resource();
|
|
61
|
+
}
|
|
60
62
|
|
|
61
|
-
_LIBCPP_HIDE_FROM_ABI pool_options options() const { return __unsync_.options(); }
|
|
63
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI pool_options options() const { return __unsync_.options(); }
|
|
62
64
|
|
|
63
65
|
protected:
|
|
64
66
|
_LIBCPP_HIDE_FROM_ABI_VIRTUAL void* do_allocate(size_t __bytes, size_t __align) override {
|
|
@@ -76,7 +76,7 @@ public:
|
|
|
76
76
|
|
|
77
77
|
void release();
|
|
78
78
|
|
|
79
|
-
_LIBCPP_HIDE_FROM_ABI memory_resource* upstream_resource() const { return __res_; }
|
|
79
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI memory_resource* upstream_resource() const { return __res_; }
|
|
80
80
|
|
|
81
81
|
[[__gnu__::__pure__]] pool_options options() const;
|
|
82
82
|
|
|
@@ -37,11 +37,11 @@ public:
|
|
|
37
37
|
# endif
|
|
38
38
|
|
|
39
39
|
_LIBCPP_ACQUIRE_CAPABILITY() void lock();
|
|
40
|
-
_LIBCPP_TRY_ACQUIRE_CAPABILITY(true) bool try_lock() _NOEXCEPT;
|
|
40
|
+
[[__nodiscard__]] _LIBCPP_TRY_ACQUIRE_CAPABILITY(true) bool try_lock() _NOEXCEPT;
|
|
41
41
|
_LIBCPP_RELEASE_CAPABILITY void unlock() _NOEXCEPT;
|
|
42
42
|
|
|
43
43
|
typedef __libcpp_mutex_t* native_handle_type;
|
|
44
|
-
_LIBCPP_HIDE_FROM_ABI native_handle_type native_handle() { return &__m_; }
|
|
44
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI native_handle_type native_handle() { return &__m_; }
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
static_assert(is_nothrow_default_constructible<mutex>::value, "the default constructor for std::mutex must be nothrow");
|
|
@@ -10,12 +10,11 @@
|
|
|
10
10
|
#define _LIBCPP___MUTEX_ONCE_FLAG_H
|
|
11
11
|
|
|
12
12
|
#include <__config>
|
|
13
|
-
#include <__functional/invoke.h>
|
|
14
13
|
#include <__memory/addressof.h>
|
|
15
|
-
#include <__memory/shared_count.h> // __libcpp_acquire_load
|
|
16
|
-
#include <__tuple/tuple_indices.h>
|
|
17
14
|
#include <__tuple/tuple_size.h>
|
|
15
|
+
#include <__type_traits/invoke.h>
|
|
18
16
|
#include <__utility/forward.h>
|
|
17
|
+
#include <__utility/integer_sequence.h>
|
|
19
18
|
#include <__utility/move.h>
|
|
20
19
|
#include <cstdint>
|
|
21
20
|
#ifndef _LIBCPP_CXX03_LANG
|
|
@@ -88,14 +87,9 @@ public:
|
|
|
88
87
|
_LIBCPP_HIDE_FROM_ABI explicit __call_once_param(_Fp& __f) : __f_(__f) {}
|
|
89
88
|
|
|
90
89
|
_LIBCPP_HIDE_FROM_ABI void operator()() {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
private:
|
|
96
|
-
template <size_t... _Indices>
|
|
97
|
-
_LIBCPP_HIDE_FROM_ABI void __execute(__tuple_indices<_Indices...>) {
|
|
98
|
-
std::__invoke(std::get<0>(std::move(__f_)), std::get<_Indices>(std::move(__f_))...);
|
|
90
|
+
[&]<size_t... _Indices>(__index_sequence<_Indices...>) -> void {
|
|
91
|
+
std::__invoke(std::get<_Indices>(std::move(__f_))...);
|
|
92
|
+
}(__make_index_sequence<tuple_size<_Fp>::value>());
|
|
99
93
|
}
|
|
100
94
|
};
|
|
101
95
|
|
|
@@ -121,6 +115,15 @@ void _LIBCPP_HIDE_FROM_ABI __call_once_proxy(void* __vp) {
|
|
|
121
115
|
|
|
122
116
|
_LIBCPP_EXPORTED_FROM_ABI void __call_once(volatile once_flag::_State_type&, void*, void (*)(void*));
|
|
123
117
|
|
|
118
|
+
template <class _ValueType>
|
|
119
|
+
inline _LIBCPP_HIDE_FROM_ABI _ValueType __libcpp_acquire_load(_ValueType const* __value) {
|
|
120
|
+
#if _LIBCPP_HAS_THREADS
|
|
121
|
+
return __atomic_load_n(__value, __ATOMIC_ACQUIRE);
|
|
122
|
+
#else
|
|
123
|
+
return *__value;
|
|
124
|
+
#endif
|
|
125
|
+
}
|
|
126
|
+
|
|
124
127
|
#ifndef _LIBCPP_CXX03_LANG
|
|
125
128
|
|
|
126
129
|
template <class _Callable, class... _Args>
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
|
|
18
18
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
19
19
|
|
|
20
|
-
struct
|
|
20
|
+
struct defer_lock_t {
|
|
21
21
|
explicit defer_lock_t() = default;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
struct
|
|
24
|
+
struct try_to_lock_t {
|
|
25
25
|
explicit try_to_lock_t() = default;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
struct
|
|
28
|
+
struct adopt_lock_t {
|
|
29
29
|
explicit adopt_lock_t() = default;
|
|
30
30
|
};
|
|
31
31
|
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include <__memory/addressof.h>
|
|
16
16
|
#include <__mutex/tag_types.h>
|
|
17
17
|
#include <__system_error/throw_system_error.h>
|
|
18
|
+
#include <__utility/move.h>
|
|
18
19
|
#include <__utility/swap.h>
|
|
19
20
|
#include <cerrno>
|
|
20
21
|
|
|
@@ -22,6 +23,9 @@
|
|
|
22
23
|
# pragma GCC system_header
|
|
23
24
|
#endif
|
|
24
25
|
|
|
26
|
+
_LIBCPP_PUSH_MACROS
|
|
27
|
+
#include <__undef_macros>
|
|
28
|
+
|
|
25
29
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
26
30
|
|
|
27
31
|
template <class _Mutex>
|
|
@@ -74,13 +78,8 @@ public:
|
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
_LIBCPP_HIDE_FROM_ABI unique_lock& operator=(unique_lock&& __u) _NOEXCEPT {
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
__m_ = __u.__m_;
|
|
81
|
-
__owns_ = __u.__owns_;
|
|
82
|
-
__u.__m_ = nullptr;
|
|
83
|
-
__u.__owns_ = false;
|
|
81
|
+
if (this != std::addressof(__u))
|
|
82
|
+
unique_lock(std::move(__u)).swap(*this);
|
|
84
83
|
return *this;
|
|
85
84
|
}
|
|
86
85
|
|
|
@@ -170,4 +169,6 @@ inline _LIBCPP_HIDE_FROM_ABI void swap(unique_lock<_Mutex>& __x, unique_lock<_Mu
|
|
|
170
169
|
|
|
171
170
|
_LIBCPP_END_NAMESPACE_STD
|
|
172
171
|
|
|
172
|
+
_LIBCPP_POP_MACROS
|
|
173
|
+
|
|
173
174
|
#endif // _LIBCPP___MUTEX_UNIQUE_LOCK_H
|
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
# pragma GCC system_header
|
|
17
17
|
#endif
|
|
18
18
|
|
|
19
|
+
// <vcruntime_exception.h> defines its own std::align_val_t type,
|
|
20
|
+
// which we use in order to be ABI-compatible with other STLs on Windows.
|
|
21
|
+
#if _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION && defined(_LIBCPP_ABI_VCRUNTIME)
|
|
22
|
+
# include <vcruntime_new.h>
|
|
23
|
+
#endif
|
|
24
|
+
|
|
19
25
|
_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD
|
|
20
26
|
#if _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION && !defined(_LIBCPP_ABI_VCRUNTIME)
|
|
21
27
|
# ifndef _LIBCPP_CXX03_LANG
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
#include <__cstddef/max_align_t.h>
|
|
14
14
|
#include <__cstddef/size_t.h>
|
|
15
15
|
#include <__new/align_val_t.h>
|
|
16
|
-
#include <__new/global_new_delete.h> // for _LIBCPP_HAS_SIZED_DEALLOCATION
|
|
17
16
|
#include <__type_traits/type_identity.h>
|
|
18
17
|
#include <__utility/element_count.h>
|
|
19
18
|
|
|
@@ -43,7 +42,7 @@ __libcpp_allocate(__element_count __n, [[__maybe_unused__]] size_t __align = _LI
|
|
|
43
42
|
return static_cast<_Tp*>(__builtin_operator_new(__size));
|
|
44
43
|
}
|
|
45
44
|
|
|
46
|
-
#if
|
|
45
|
+
#if defined(__cpp_sized_deallocation) && __cpp_sized_deallocation >= 201309L
|
|
47
46
|
# define _LIBCPP_ONLY_IF_SIZED_DEALLOCATION(...) __VA_ARGS__
|
|
48
47
|
#else
|
|
49
48
|
# define _LIBCPP_ONLY_IF_SIZED_DEALLOCATION(...) /* nothing */
|
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
# pragma GCC system_header
|
|
18
18
|
#endif
|
|
19
19
|
|
|
20
|
+
// <vcruntime_exception.h> defines its own std::bad_alloc type,
|
|
21
|
+
// which we use in order to be ABI-compatible with other STLs on Windows.
|
|
22
|
+
#if defined(_LIBCPP_ABI_VCRUNTIME)
|
|
23
|
+
# include <vcruntime_exception.h>
|
|
24
|
+
#endif
|
|
25
|
+
|
|
20
26
|
_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD
|
|
21
27
|
#if !defined(_LIBCPP_ABI_VCRUNTIME)
|
|
22
28
|
|
|
@@ -26,7 +32,7 @@ public:
|
|
|
26
32
|
_LIBCPP_HIDE_FROM_ABI bad_alloc(const bad_alloc&) _NOEXCEPT = default;
|
|
27
33
|
_LIBCPP_HIDE_FROM_ABI bad_alloc& operator=(const bad_alloc&) _NOEXCEPT = default;
|
|
28
34
|
~bad_alloc() _NOEXCEPT override;
|
|
29
|
-
const char* what() const _NOEXCEPT override;
|
|
35
|
+
[[__nodiscard__]] const char* what() const _NOEXCEPT override;
|
|
30
36
|
};
|
|
31
37
|
|
|
32
38
|
class _LIBCPP_EXPORTED_FROM_ABI bad_array_new_length : public bad_alloc {
|
|
@@ -35,7 +41,7 @@ public:
|
|
|
35
41
|
_LIBCPP_HIDE_FROM_ABI bad_array_new_length(const bad_array_new_length&) _NOEXCEPT = default;
|
|
36
42
|
_LIBCPP_HIDE_FROM_ABI bad_array_new_length& operator=(const bad_array_new_length&) _NOEXCEPT = default;
|
|
37
43
|
~bad_array_new_length() _NOEXCEPT override;
|
|
38
|
-
const char* what() const _NOEXCEPT override;
|
|
44
|
+
[[__nodiscard__]] const char* what() const _NOEXCEPT override;
|
|
39
45
|
};
|
|
40
46
|
|
|
41
47
|
#elif defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS == 0 // !_LIBCPP_ABI_VCRUNTIME
|