@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.224
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/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/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 +16 -8
- package/std/c.zig +7 -0
- package/std/crypto/ml_kem.zig +0 -15
- 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 +1 -2
- 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/std/zig/target.zig +1 -2
- package/std/zon/parse.zig +1 -1
- 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
|
@@ -45,7 +45,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
45
45
|
|
|
46
46
|
namespace __formatter {
|
|
47
47
|
|
|
48
|
-
struct
|
|
48
|
+
struct __padding_size_result {
|
|
49
49
|
size_t __before_;
|
|
50
50
|
size_t __after_;
|
|
51
51
|
};
|
|
@@ -151,45 +151,41 @@ _LIBCPP_HIDE_FROM_ABI _OutIt __fill(_OutIt __out_it, size_t __n, _CharT __value)
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
# if _LIBCPP_HAS_UNICODE
|
|
155
154
|
template <__fmt_char_type _CharT, output_iterator<const _CharT&> _OutIt>
|
|
156
|
-
requires(same_as<_CharT, char>)
|
|
157
155
|
_LIBCPP_HIDE_FROM_ABI _OutIt __fill(_OutIt __out_it, size_t __n, __format_spec::__code_point<_CharT> __value) {
|
|
158
|
-
|
|
159
|
-
if (
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
156
|
+
# if _LIBCPP_HAS_UNICODE
|
|
157
|
+
if constexpr (same_as<_CharT, char>) {
|
|
158
|
+
std::size_t __bytes = std::countl_one(static_cast<unsigned char>(__value.__data[0]));
|
|
159
|
+
if (__bytes == 0)
|
|
160
|
+
return __formatter::__fill(std::move(__out_it), __n, __value.__data[0]);
|
|
161
|
+
|
|
162
|
+
for (size_t __i = 0; __i < __n; ++__i)
|
|
163
|
+
__out_it = __formatter::__copy(
|
|
164
|
+
std::addressof(__value.__data[0]), std::addressof(__value.__data[0]) + __bytes, std::move(__out_it));
|
|
165
|
+
return __out_it;
|
|
168
166
|
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
_LIBCPP_HIDE_FROM_ABI _OutIt __fill(_OutIt __out_it, size_t __n, __format_spec::__code_point<_CharT> __value) {
|
|
184
|
-
return __formatter::__fill(std::move(__out_it), __n, __value.__data[0]);
|
|
185
|
-
}
|
|
167
|
+
} else if constexpr (same_as<_CharT, wchar_t>) {
|
|
168
|
+
if constexpr (sizeof(wchar_t) == 2) {
|
|
169
|
+
if (!__unicode::__is_high_surrogate(__value.__data[0]))
|
|
170
|
+
return __formatter::__fill(std::move(__out_it), __n, __value.__data[0]);
|
|
171
|
+
|
|
172
|
+
for (size_t __i = 0; __i < __n; ++__i)
|
|
173
|
+
__out_it = __formatter::__copy(
|
|
174
|
+
std::addressof(__value.__data[0]), std::addressof(__value.__data[0]) + 2, std::move(__out_it));
|
|
175
|
+
return __out_it;
|
|
176
|
+
} else if constexpr (sizeof(wchar_t) == 4) {
|
|
177
|
+
return __formatter::__fill(std::move(__out_it), __n, __value.__data[0]);
|
|
178
|
+
} else {
|
|
179
|
+
static_assert(false, "expected sizeof(wchar_t) to be 2 or 4");
|
|
180
|
+
}
|
|
186
181
|
# endif // _LIBCPP_HAS_WIDE_CHARACTERS
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
182
|
+
} else {
|
|
183
|
+
static_assert(false, "Unexpected CharT");
|
|
184
|
+
}
|
|
185
|
+
# else // _LIBCPP_HAS_UNICODE
|
|
190
186
|
return __formatter::__fill(std::move(__out_it), __n, __value.__data[0]);
|
|
187
|
+
# endif // _LIBCPP_HAS_UNICODE
|
|
191
188
|
}
|
|
192
|
-
# endif // _LIBCPP_HAS_UNICODE
|
|
193
189
|
|
|
194
190
|
/// Writes the input to the output with the required padding.
|
|
195
191
|
///
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
#ifndef _LIBCPP___FORMAT_INDIC_CONJUNCT_BREAK_TABLE_H
|
|
62
62
|
#define _LIBCPP___FORMAT_INDIC_CONJUNCT_BREAK_TABLE_H
|
|
63
63
|
|
|
64
|
-
#include <__algorithm/
|
|
64
|
+
#include <__algorithm/upper_bound.h>
|
|
65
65
|
#include <__config>
|
|
66
66
|
#include <__cstddef/ptrdiff_t.h>
|
|
67
67
|
#include <__iterator/access.h>
|
|
@@ -531,7 +531,8 @@ _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[403] = {
|
|
|
531
531
|
// size. Then the upper bound for code point 3 will return the entry after
|
|
532
532
|
// 0x1810. After moving to the previous entry the algorithm arrives at the
|
|
533
533
|
// correct entry.
|
|
534
|
-
ptrdiff_t __i =
|
|
534
|
+
ptrdiff_t __i =
|
|
535
|
+
std::upper_bound(std::begin(__entries), std::end(__entries), (__code_point << 11) | 0x7ffu) - __entries;
|
|
535
536
|
if (__i == 0)
|
|
536
537
|
return __property::__none;
|
|
537
538
|
|
|
@@ -16,10 +16,11 @@
|
|
|
16
16
|
|
|
17
17
|
#include <__algorithm/ranges_copy.h>
|
|
18
18
|
#include <__chrono/statically_widen.h>
|
|
19
|
-
#include <__concepts/same_as.h>
|
|
20
19
|
#include <__config>
|
|
21
20
|
#include <__format/concepts.h>
|
|
21
|
+
#include <__format/fmt_pair_like.h>
|
|
22
22
|
#include <__format/formatter.h>
|
|
23
|
+
#include <__format/range_format.h>
|
|
23
24
|
#include <__format/range_formatter.h>
|
|
24
25
|
#include <__iterator/back_insert_iterator.h>
|
|
25
26
|
#include <__ranges/concepts.h>
|
|
@@ -42,51 +43,11 @@ concept __const_formattable_range =
|
|
|
42
43
|
template <class _Rp, class _CharT>
|
|
43
44
|
using __fmt_maybe_const _LIBCPP_NODEBUG = conditional_t<__const_formattable_range<_Rp, _CharT>, const _Rp, _Rp>;
|
|
44
45
|
|
|
45
|
-
_LIBCPP_DIAGNOSTIC_PUSH
|
|
46
|
-
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wshadow")
|
|
47
|
-
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wshadow")
|
|
48
|
-
// This shadows map, set, and string.
|
|
49
|
-
enum class range_format { disabled, map, set, sequence, string, debug_string };
|
|
50
|
-
_LIBCPP_DIAGNOSTIC_POP
|
|
51
|
-
|
|
52
46
|
// There is no definition of this struct, it's purely intended to be used to
|
|
53
47
|
// generate diagnostics.
|
|
54
48
|
template <class _Rp>
|
|
55
49
|
struct __instantiated_the_primary_template_of_format_kind;
|
|
56
50
|
|
|
57
|
-
template <class _Rp>
|
|
58
|
-
constexpr range_format format_kind = [] {
|
|
59
|
-
// [format.range.fmtkind]/1
|
|
60
|
-
// A program that instantiates the primary template of format_kind is ill-formed.
|
|
61
|
-
static_assert(sizeof(_Rp) != sizeof(_Rp), "create a template specialization of format_kind for your type");
|
|
62
|
-
return range_format::disabled;
|
|
63
|
-
}();
|
|
64
|
-
|
|
65
|
-
template <ranges::input_range _Rp>
|
|
66
|
-
requires same_as<_Rp, remove_cvref_t<_Rp>>
|
|
67
|
-
inline constexpr range_format format_kind<_Rp> = [] {
|
|
68
|
-
// [format.range.fmtkind]/2
|
|
69
|
-
|
|
70
|
-
// 2.1 If same_as<remove_cvref_t<ranges::range_reference_t<R>>, R> is true,
|
|
71
|
-
// Otherwise format_kind<R> is range_format::disabled.
|
|
72
|
-
if constexpr (same_as<remove_cvref_t<ranges::range_reference_t<_Rp>>, _Rp>)
|
|
73
|
-
return range_format::disabled;
|
|
74
|
-
// 2.2 Otherwise, if the qualified-id R::key_type is valid and denotes a type:
|
|
75
|
-
else if constexpr (requires { typename _Rp::key_type; }) {
|
|
76
|
-
// 2.2.1 If the qualified-id R::mapped_type is valid and denotes a type ...
|
|
77
|
-
if constexpr (requires { typename _Rp::mapped_type; } &&
|
|
78
|
-
// 2.2.1 ... If either U is a specialization of pair or U is a specialization
|
|
79
|
-
// of tuple and tuple_size_v<U> == 2
|
|
80
|
-
__fmt_pair_like<remove_cvref_t<ranges::range_reference_t<_Rp>>>)
|
|
81
|
-
return range_format::map;
|
|
82
|
-
else
|
|
83
|
-
// 2.2.2 Otherwise format_kind<R> is range_format::set.
|
|
84
|
-
return range_format::set;
|
|
85
|
-
} else
|
|
86
|
-
// 2.3 Otherwise, format_kind<R> is range_format::sequence.
|
|
87
|
-
return range_format::sequence;
|
|
88
|
-
}();
|
|
89
|
-
|
|
90
51
|
template <range_format _Kp, ranges::input_range _Rp, class _CharT>
|
|
91
52
|
struct __range_default_formatter;
|
|
92
53
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// -*- C++ -*-
|
|
2
|
+
//===----------------------------------------------------------------------===//
|
|
3
|
+
//
|
|
4
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
5
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
7
|
+
//
|
|
8
|
+
//===----------------------------------------------------------------------===//
|
|
9
|
+
|
|
10
|
+
#ifndef _LIBCPP___FORMAT_RANGE_FORMAT_H
|
|
11
|
+
#define _LIBCPP___FORMAT_RANGE_FORMAT_H
|
|
12
|
+
|
|
13
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
14
|
+
# pragma GCC system_header
|
|
15
|
+
#endif
|
|
16
|
+
|
|
17
|
+
#include <__concepts/same_as.h>
|
|
18
|
+
#include <__config>
|
|
19
|
+
#include <__format/fmt_pair_like.h>
|
|
20
|
+
#include <__ranges/concepts.h>
|
|
21
|
+
#include <__type_traits/remove_cvref.h>
|
|
22
|
+
|
|
23
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
24
|
+
|
|
25
|
+
#if _LIBCPP_STD_VER >= 23
|
|
26
|
+
|
|
27
|
+
_LIBCPP_DIAGNOSTIC_PUSH
|
|
28
|
+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wshadow")
|
|
29
|
+
_LIBCPP_GCC_DIAGNOSTIC_IGNORED("-Wshadow")
|
|
30
|
+
// This shadows map, set, and string.
|
|
31
|
+
enum class range_format { disabled, map, set, sequence, string, debug_string };
|
|
32
|
+
_LIBCPP_DIAGNOSTIC_POP
|
|
33
|
+
|
|
34
|
+
template <class _Rp>
|
|
35
|
+
constexpr range_format format_kind = [] {
|
|
36
|
+
// [format.range.fmtkind]/1
|
|
37
|
+
// A program that instantiates the primary template of format_kind is ill-formed.
|
|
38
|
+
static_assert(sizeof(_Rp) != sizeof(_Rp), "create a template specialization of format_kind for your type");
|
|
39
|
+
return range_format::disabled;
|
|
40
|
+
}();
|
|
41
|
+
|
|
42
|
+
template <ranges::input_range _Rp>
|
|
43
|
+
requires same_as<_Rp, remove_cvref_t<_Rp>>
|
|
44
|
+
inline constexpr range_format format_kind<_Rp> = [] {
|
|
45
|
+
// [format.range.fmtkind]/2
|
|
46
|
+
|
|
47
|
+
// 2.1 If same_as<remove_cvref_t<ranges::range_reference_t<R>>, R> is true,
|
|
48
|
+
// Otherwise format_kind<R> is range_format::disabled.
|
|
49
|
+
if constexpr (same_as<remove_cvref_t<ranges::range_reference_t<_Rp>>, _Rp>)
|
|
50
|
+
return range_format::disabled;
|
|
51
|
+
// 2.2 Otherwise, if the qualified-id R::key_type is valid and denotes a type:
|
|
52
|
+
else if constexpr (requires { typename _Rp::key_type; }) {
|
|
53
|
+
// 2.2.1 If the qualified-id R::mapped_type is valid and denotes a type ...
|
|
54
|
+
if constexpr (requires { typename _Rp::mapped_type; } &&
|
|
55
|
+
// 2.2.1 ... If either U is a specialization of pair or U is a specialization
|
|
56
|
+
// of tuple and tuple_size_v<U> == 2
|
|
57
|
+
__fmt_pair_like<remove_cvref_t<ranges::range_reference_t<_Rp>>>)
|
|
58
|
+
return range_format::map;
|
|
59
|
+
else
|
|
60
|
+
// 2.2.2 Otherwise format_kind<R> is range_format::set.
|
|
61
|
+
return range_format::set;
|
|
62
|
+
} else
|
|
63
|
+
// 2.3 Otherwise, format_kind<R> is range_format::sequence.
|
|
64
|
+
return range_format::sequence;
|
|
65
|
+
}();
|
|
66
|
+
|
|
67
|
+
#endif // _LIBCPP_STD_VER >= 23
|
|
68
|
+
|
|
69
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
70
|
+
|
|
71
|
+
#endif
|
|
@@ -61,9 +61,10 @@
|
|
|
61
61
|
#ifndef _LIBCPP___FORMAT_WIDTH_ESTIMATION_TABLE_H
|
|
62
62
|
#define _LIBCPP___FORMAT_WIDTH_ESTIMATION_TABLE_H
|
|
63
63
|
|
|
64
|
-
#include <__algorithm/
|
|
64
|
+
#include <__algorithm/upper_bound.h>
|
|
65
65
|
#include <__config>
|
|
66
66
|
#include <__cstddef/ptrdiff_t.h>
|
|
67
|
+
#include <__iterator/access.h>
|
|
67
68
|
#include <cstdint>
|
|
68
69
|
|
|
69
70
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
@@ -255,7 +256,8 @@ inline constexpr uint32_t __table_upper_bound = 0x0003fffd;
|
|
|
255
256
|
if (__code_point < (__entries[0] >> 14))
|
|
256
257
|
return 1;
|
|
257
258
|
|
|
258
|
-
ptrdiff_t __i =
|
|
259
|
+
ptrdiff_t __i =
|
|
260
|
+
std::upper_bound(std::begin(__entries), std::end(__entries), (__code_point << 14) | 0x3fffu) - __entries;
|
|
259
261
|
if (__i == 0)
|
|
260
262
|
return 1;
|
|
261
263
|
|
|
@@ -81,17 +81,12 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _Tp& __mu(reference_w
|
|
|
81
81
|
return __t.get();
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
template <class _Ti, class... _Uj, size_t... _Indx>
|
|
85
|
-
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __invoke_result_t<_Ti&, _Uj...>
|
|
86
|
-
__mu_expand(_Ti& __ti, tuple<_Uj...>& __uj, __tuple_indices<_Indx...>) {
|
|
87
|
-
return __ti(std::forward<_Uj>(std::get<_Indx>(__uj))...);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
84
|
template <class _Ti, class... _Uj, __enable_if_t<is_bind_expression<_Ti>::value, int> = 0>
|
|
91
85
|
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __invoke_result_t<_Ti&, _Uj...>
|
|
92
86
|
__mu(_Ti& __ti, tuple<_Uj...>& __uj) {
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
return [&]<size_t... _Indices>(__index_sequence<_Indices...>) -> __invoke_result_t<_Ti&, _Uj...> {
|
|
88
|
+
return __ti(std::forward<_Uj>(std::get<_Indices>(__uj))...);
|
|
89
|
+
}(__index_sequence_for<_Uj...>{});
|
|
95
90
|
}
|
|
96
91
|
|
|
97
92
|
template <bool _IsPh, class _Ti, class _Uj>
|
|
@@ -191,7 +186,7 @@ struct __bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj, true> {
|
|
|
191
186
|
|
|
192
187
|
template <class _Fp, class _BoundArgs, size_t... _Indx, class _Args>
|
|
193
188
|
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 typename __bind_return<_Fp, _BoundArgs, _Args>::type
|
|
194
|
-
__apply_functor(_Fp& __f, _BoundArgs& __bound_args,
|
|
189
|
+
__apply_functor(_Fp& __f, _BoundArgs& __bound_args, __index_sequence<_Indx...>, _Args&& __args) {
|
|
195
190
|
return std::__invoke(__f, std::__mu(std::get<_Indx>(__bound_args), __args)...);
|
|
196
191
|
}
|
|
197
192
|
|
|
@@ -205,8 +200,6 @@ private:
|
|
|
205
200
|
_Fd __f_;
|
|
206
201
|
_Td __bound_args_;
|
|
207
202
|
|
|
208
|
-
typedef typename __make_tuple_indices<sizeof...(_BoundArgs)>::type __indices;
|
|
209
|
-
|
|
210
203
|
public:
|
|
211
204
|
template <
|
|
212
205
|
class _Gp,
|
|
@@ -219,14 +212,16 @@ public:
|
|
|
219
212
|
template <class... _Args>
|
|
220
213
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type
|
|
221
214
|
operator()(_Args&&... __args) {
|
|
222
|
-
return std::__apply_functor(
|
|
215
|
+
return std::__apply_functor(
|
|
216
|
+
__f_, __bound_args_, __index_sequence_for<_BoundArgs...>(), tuple<_Args&&...>(std::forward<_Args>(__args)...));
|
|
223
217
|
}
|
|
224
218
|
|
|
225
219
|
template <class... _Args>
|
|
226
220
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
|
|
227
221
|
typename __bind_return<const _Fd, const _Td, tuple<_Args&&...> >::type
|
|
228
222
|
operator()(_Args&&... __args) const {
|
|
229
|
-
return std::__apply_functor(
|
|
223
|
+
return std::__apply_functor(
|
|
224
|
+
__f_, __bound_args_, __index_sequence_for<_BoundArgs...>(), tuple<_Args&&...>(std::forward<_Args>(__args)...));
|
|
230
225
|
}
|
|
231
226
|
};
|
|
232
227
|
|
|
@@ -273,14 +268,14 @@ template <class _Rp, class _Fp, class... _BoundArgs>
|
|
|
273
268
|
struct is_bind_expression<__bind_r<_Rp, _Fp, _BoundArgs...> > : public true_type {};
|
|
274
269
|
|
|
275
270
|
template <class _Fp, class... _BoundArgs>
|
|
276
|
-
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __bind<_Fp, _BoundArgs...>
|
|
271
|
+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __bind<_Fp, _BoundArgs...>
|
|
277
272
|
bind(_Fp&& __f, _BoundArgs&&... __bound_args) {
|
|
278
273
|
typedef __bind<_Fp, _BoundArgs...> type;
|
|
279
274
|
return type(std::forward<_Fp>(__f), std::forward<_BoundArgs>(__bound_args)...);
|
|
280
275
|
}
|
|
281
276
|
|
|
282
277
|
template <class _Rp, class _Fp, class... _BoundArgs>
|
|
283
|
-
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __bind_r<_Rp, _Fp, _BoundArgs...>
|
|
278
|
+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __bind_r<_Rp, _Fp, _BoundArgs...>
|
|
284
279
|
bind(_Fp&& __f, _BoundArgs&&... __bound_args) {
|
|
285
280
|
typedef __bind_r<_Rp, _Fp, _BoundArgs...> type;
|
|
286
281
|
return type(std::forward<_Fp>(__f), std::forward<_BoundArgs>(__bound_args)...);
|
|
@@ -64,7 +64,7 @@ _LIBCPP_HIDE_FROM_ABI constexpr auto __bind_back(_Fn&& __f, _Args&&... __args) n
|
|
|
64
64
|
|
|
65
65
|
# if _LIBCPP_STD_VER >= 23
|
|
66
66
|
template <class _Fn, class... _Args>
|
|
67
|
-
_LIBCPP_HIDE_FROM_ABI constexpr auto bind_back(_Fn&& __f, _Args&&... __args) {
|
|
67
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto bind_back(_Fn&& __f, _Args&&... __args) {
|
|
68
68
|
static_assert(is_constructible_v<decay_t<_Fn>, _Fn>, "bind_back requires decay_t<F> to be constructible from F");
|
|
69
69
|
static_assert(is_move_constructible_v<decay_t<_Fn>>, "bind_back requires decay_t<F> to be move constructible");
|
|
70
70
|
static_assert((is_constructible_v<decay_t<_Args>, _Args> && ...),
|
|
@@ -43,7 +43,7 @@ struct __bind_front_t : __perfect_forward<__bind_front_op, _Fn, _BoundArgs...> {
|
|
|
43
43
|
template <class _Fn, class... _Args>
|
|
44
44
|
requires is_constructible_v<decay_t<_Fn>, _Fn> && is_move_constructible_v<decay_t<_Fn>> &&
|
|
45
45
|
(is_constructible_v<decay_t<_Args>, _Args> && ...) && (is_move_constructible_v<decay_t<_Args>> && ...)
|
|
46
|
-
_LIBCPP_HIDE_FROM_ABI constexpr auto bind_front(_Fn&& __f, _Args&&... __args) {
|
|
46
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto bind_front(_Fn&& __f, _Args&&... __args) {
|
|
47
47
|
return __bind_front_t<decay_t<_Fn>, decay_t<_Args>...>(std::forward<_Fn>(__f), std::forward<_Args>(__args)...);
|
|
48
48
|
}
|
|
49
49
|
|
|
@@ -15,16 +15,14 @@
|
|
|
15
15
|
#include <__cstddef/nullptr_t.h>
|
|
16
16
|
#include <__exception/exception.h>
|
|
17
17
|
#include <__functional/binary_function.h>
|
|
18
|
-
#include <__functional/invoke.h>
|
|
19
18
|
#include <__functional/unary_function.h>
|
|
20
19
|
#include <__memory/addressof.h>
|
|
21
20
|
#include <__type_traits/aligned_storage.h>
|
|
22
21
|
#include <__type_traits/decay.h>
|
|
23
|
-
#include <__type_traits/
|
|
22
|
+
#include <__type_traits/invoke.h>
|
|
24
23
|
#include <__type_traits/is_scalar.h>
|
|
25
24
|
#include <__type_traits/is_trivially_constructible.h>
|
|
26
25
|
#include <__type_traits/is_trivially_destructible.h>
|
|
27
|
-
#include <__type_traits/is_void.h>
|
|
28
26
|
#include <__type_traits/strip_signature.h>
|
|
29
27
|
#include <__utility/forward.h>
|
|
30
28
|
#include <__utility/move.h>
|
|
@@ -95,29 +93,29 @@ template <class _Rp, class _A1, class _A2>
|
|
|
95
93
|
struct __maybe_derive_from_binary_function<_Rp(_A1, _A2)> : public __binary_function<_A1, _A2, _Rp> {};
|
|
96
94
|
|
|
97
95
|
template <class _Fp>
|
|
98
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
99
|
-
return
|
|
96
|
+
_LIBCPP_HIDE_FROM_ABI bool __is_null(_Fp const&) {
|
|
97
|
+
return false;
|
|
100
98
|
}
|
|
101
99
|
|
|
102
100
|
template <class _Fp>
|
|
103
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
104
|
-
return __ptr;
|
|
101
|
+
_LIBCPP_HIDE_FROM_ABI bool __is_null(_Fp* __ptr) {
|
|
102
|
+
return !__ptr;
|
|
105
103
|
}
|
|
106
104
|
|
|
107
105
|
template <class _Ret, class _Class>
|
|
108
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
109
|
-
return __ptr;
|
|
106
|
+
_LIBCPP_HIDE_FROM_ABI bool __is_null(_Ret _Class::* __ptr) {
|
|
107
|
+
return !__ptr;
|
|
110
108
|
}
|
|
111
109
|
|
|
112
110
|
template <class _Fp>
|
|
113
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
114
|
-
return
|
|
111
|
+
_LIBCPP_HIDE_FROM_ABI bool __is_null(function<_Fp> const& __f) {
|
|
112
|
+
return !__f;
|
|
115
113
|
}
|
|
116
114
|
|
|
117
115
|
# if __has_extension(blocks)
|
|
118
116
|
template <class _Rp, class... _Args>
|
|
119
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
120
|
-
return __p;
|
|
117
|
+
_LIBCPP_HIDE_FROM_ABI bool __is_null(_Rp (^__p)(_Args...)) {
|
|
118
|
+
return !__p;
|
|
121
119
|
}
|
|
122
120
|
# endif
|
|
123
121
|
|
|
@@ -206,12 +204,13 @@ public:
|
|
|
206
204
|
_LIBCPP_HIDE_FROM_ABI explicit __value_func(_Fp&& __f) : __f_(nullptr) {
|
|
207
205
|
typedef __function::__func<_Fp, _Rp(_ArgTypes...)> _Fun;
|
|
208
206
|
|
|
209
|
-
if (__function::
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
207
|
+
if (__function::__is_null(__f))
|
|
208
|
+
return;
|
|
209
|
+
|
|
210
|
+
if (sizeof(_Fun) <= sizeof(__buf_) && is_nothrow_copy_constructible<_Fp>::value) {
|
|
211
|
+
__f_ = ::new (std::addressof(__buf_)) _Fun(std::move(__f));
|
|
212
|
+
} else {
|
|
213
|
+
__f_ = new _Fun(std::move(__f));
|
|
215
214
|
}
|
|
216
215
|
}
|
|
217
216
|
|
|
@@ -356,7 +355,31 @@ struct __policy {
|
|
|
356
355
|
// type.
|
|
357
356
|
template <typename _Fun>
|
|
358
357
|
_LIBCPP_HIDE_FROM_ABI static const __policy* __create() {
|
|
359
|
-
|
|
358
|
+
if constexpr (__use_small_storage<_Fun>::value) {
|
|
359
|
+
static constexpr __policy __policy = {
|
|
360
|
+
nullptr,
|
|
361
|
+
nullptr,
|
|
362
|
+
false,
|
|
363
|
+
# if _LIBCPP_HAS_RTTI
|
|
364
|
+
&typeid(_Fun)
|
|
365
|
+
# else
|
|
366
|
+
nullptr
|
|
367
|
+
# endif
|
|
368
|
+
};
|
|
369
|
+
return &__policy;
|
|
370
|
+
} else {
|
|
371
|
+
static constexpr __policy __policy = {
|
|
372
|
+
std::addressof(__large_clone<_Fun>),
|
|
373
|
+
std::addressof(__large_destroy<_Fun>),
|
|
374
|
+
false,
|
|
375
|
+
# if _LIBCPP_HAS_RTTI
|
|
376
|
+
&typeid(_Fun)
|
|
377
|
+
# else
|
|
378
|
+
nullptr
|
|
379
|
+
# endif
|
|
380
|
+
};
|
|
381
|
+
return &__policy;
|
|
382
|
+
}
|
|
360
383
|
}
|
|
361
384
|
|
|
362
385
|
_LIBCPP_HIDE_FROM_ABI static const __policy* __create_empty() {
|
|
@@ -384,36 +407,6 @@ private:
|
|
|
384
407
|
_LIBCPP_HIDE_FROM_ABI static void __large_destroy(void* __s) {
|
|
385
408
|
delete static_cast<_Fun*>(__s);
|
|
386
409
|
}
|
|
387
|
-
|
|
388
|
-
template <typename _Fun>
|
|
389
|
-
_LIBCPP_HIDE_FROM_ABI static const __policy* __choose_policy(/* is_small = */ false_type) {
|
|
390
|
-
static constexpr __policy __policy = {
|
|
391
|
-
std::addressof(__large_clone<_Fun>),
|
|
392
|
-
std::addressof(__large_destroy<_Fun>),
|
|
393
|
-
false,
|
|
394
|
-
# if _LIBCPP_HAS_RTTI
|
|
395
|
-
&typeid(_Fun)
|
|
396
|
-
# else
|
|
397
|
-
nullptr
|
|
398
|
-
# endif
|
|
399
|
-
};
|
|
400
|
-
return &__policy;
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
template <typename _Fun>
|
|
404
|
-
_LIBCPP_HIDE_FROM_ABI static const __policy* __choose_policy(/* is_small = */ true_type) {
|
|
405
|
-
static constexpr __policy __policy = {
|
|
406
|
-
nullptr,
|
|
407
|
-
nullptr,
|
|
408
|
-
false,
|
|
409
|
-
# if _LIBCPP_HAS_RTTI
|
|
410
|
-
&typeid(_Fun)
|
|
411
|
-
# else
|
|
412
|
-
nullptr
|
|
413
|
-
# endif
|
|
414
|
-
};
|
|
415
|
-
return &__policy;
|
|
416
|
-
}
|
|
417
410
|
};
|
|
418
411
|
|
|
419
412
|
// Used to choose between perfect forwarding or pass-by-value. Pass-by-value is
|
|
@@ -455,14 +448,15 @@ public:
|
|
|
455
448
|
|
|
456
449
|
template <class _Fp, __enable_if_t<!is_same<__decay_t<_Fp>, __policy_func>::value, int> = 0>
|
|
457
450
|
_LIBCPP_HIDE_FROM_ABI explicit __policy_func(_Fp&& __f) : __policy_(__policy::__create_empty()) {
|
|
458
|
-
if (__function::
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
451
|
+
if (__function::__is_null(__f))
|
|
452
|
+
return;
|
|
453
|
+
|
|
454
|
+
__func_ = __call_func<_Fp>;
|
|
455
|
+
__policy_ = __policy::__create<_Fp>();
|
|
456
|
+
if (__use_small_storage<_Fp>()) {
|
|
457
|
+
::new ((void*)&__buf_.__small) _Fp(std::move(__f));
|
|
458
|
+
} else {
|
|
459
|
+
__buf_.__large = ::new _Fp(std::move(__f));
|
|
466
460
|
}
|
|
467
461
|
}
|
|
468
462
|
|
|
@@ -615,21 +609,9 @@ class function<_Rp(_ArgTypes...)>
|
|
|
615
609
|
|
|
616
610
|
__func __f_;
|
|
617
611
|
|
|
618
|
-
template <class _Fp,
|
|
619
|
-
bool = _And<_IsNotSame<__remove_cvref_t<_Fp>, function>, __is_invocable<_Fp, _ArgTypes...> >::value>
|
|
620
|
-
struct __callable;
|
|
621
|
-
template <class _Fp>
|
|
622
|
-
struct __callable<_Fp, true> {
|
|
623
|
-
static const bool value =
|
|
624
|
-
is_void<_Rp>::value || __is_core_convertible<__invoke_result_t<_Fp, _ArgTypes...>, _Rp>::value;
|
|
625
|
-
};
|
|
626
|
-
template <class _Fp>
|
|
627
|
-
struct __callable<_Fp, false> {
|
|
628
|
-
static const bool value = false;
|
|
629
|
-
};
|
|
630
|
-
|
|
631
612
|
template <class _Fp>
|
|
632
|
-
using _EnableIfLValueCallable _LIBCPP_NODEBUG = __enable_if_t<
|
|
613
|
+
using _EnableIfLValueCallable _LIBCPP_NODEBUG = __enable_if_t<
|
|
614
|
+
_And<_IsNotSame<__remove_cvref_t<_Fp>, function>, __is_invocable_r<_Rp, _Fp&, _ArgTypes...>>::value>;
|
|
633
615
|
|
|
634
616
|
public:
|
|
635
617
|
typedef _Rp result_type;
|
|
@@ -690,11 +672,11 @@ public:
|
|
|
690
672
|
|
|
691
673
|
# if _LIBCPP_HAS_RTTI
|
|
692
674
|
// function target access:
|
|
693
|
-
_LIBCPP_HIDE_FROM_ABI const std::type_info& target_type() const _NOEXCEPT;
|
|
675
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const std::type_info& target_type() const _NOEXCEPT;
|
|
694
676
|
template <typename _Tp>
|
|
695
|
-
_LIBCPP_HIDE_FROM_ABI _Tp* target() _NOEXCEPT;
|
|
677
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI _Tp* target() _NOEXCEPT;
|
|
696
678
|
template <typename _Tp>
|
|
697
|
-
_LIBCPP_HIDE_FROM_ABI const _Tp* target() const _NOEXCEPT;
|
|
679
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const _Tp* target() const _NOEXCEPT;
|
|
698
680
|
# endif // _LIBCPP_HAS_RTTI
|
|
699
681
|
};
|
|
700
682
|
|
|
@@ -433,13 +433,10 @@ struct __hash_impl<long double> : __scalar_hash<long double> {
|
|
|
433
433
|
template <class _Tp>
|
|
434
434
|
struct hash : public __hash_impl<_Tp> {};
|
|
435
435
|
|
|
436
|
-
#if _LIBCPP_STD_VER >= 17
|
|
437
|
-
|
|
438
436
|
template <>
|
|
439
437
|
struct hash<nullptr_t> : public __unary_function<nullptr_t, size_t> {
|
|
440
|
-
_LIBCPP_HIDE_FROM_ABI size_t operator()(nullptr_t) const _NOEXCEPT { return 662607004ull; }
|
|
438
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t operator()(nullptr_t) const _NOEXCEPT { return 662607004ull; }
|
|
441
439
|
};
|
|
442
|
-
#endif
|
|
443
440
|
|
|
444
441
|
#ifndef _LIBCPP_CXX03_LANG
|
|
445
442
|
template <class _Key, class _Hash>
|
|
@@ -452,18 +449,12 @@ template <class _Key, class _Hash = hash<_Key> >
|
|
|
452
449
|
using __has_enabled_hash _LIBCPP_NODEBUG =
|
|
453
450
|
integral_constant<bool, __check_hash_requirements<_Key, _Hash>::value && is_default_constructible<_Hash>::value >;
|
|
454
451
|
|
|
455
|
-
# if _LIBCPP_STD_VER >= 17
|
|
456
452
|
template <class _Type, class>
|
|
457
453
|
using __enable_hash_helper_imp _LIBCPP_NODEBUG = _Type;
|
|
458
454
|
|
|
459
455
|
template <class _Type, class... _Keys>
|
|
460
456
|
using __enable_hash_helper _LIBCPP_NODEBUG =
|
|
461
457
|
__enable_hash_helper_imp<_Type, __enable_if_t<__all<__has_enabled_hash<_Keys>::value...>::value> >;
|
|
462
|
-
# else
|
|
463
|
-
template <class _Type, class...>
|
|
464
|
-
using __enable_hash_helper _LIBCPP_NODEBUG = _Type;
|
|
465
|
-
# endif
|
|
466
|
-
|
|
467
458
|
#endif // !_LIBCPP_CXX03_LANG
|
|
468
459
|
|
|
469
460
|
_LIBCPP_END_NAMESPACE_STD
|
|
@@ -44,7 +44,7 @@ struct __is_identity<reference_wrapper<const __identity> > : true_type {};
|
|
|
44
44
|
|
|
45
45
|
struct identity {
|
|
46
46
|
template <class _Tp>
|
|
47
|
-
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr _Tp&& operator()(_Tp&& __t) const noexcept {
|
|
47
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr _Tp&& operator()(_LIBCPP_LIFETIMEBOUND _Tp&& __t) const noexcept {
|
|
48
48
|
return std::forward<_Tp>(__t);
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -29,6 +29,14 @@ inline const bool __is_transparent_v<_Tp, _Key, __void_t<typename _Tp::is_transp
|
|
|
29
29
|
|
|
30
30
|
#endif
|
|
31
31
|
|
|
32
|
+
// Two types are considered transparently comparable if `comparator(key, arg)` is equivalent to `comparator(key,
|
|
33
|
+
// <implicit cast to KeyT>(arg))`.
|
|
34
|
+
//
|
|
35
|
+
// This is different from `__is_transparent_v`, which is only a property of the comparator and doesn't provide
|
|
36
|
+
// additional semantic guarantees.
|
|
37
|
+
template <class _Comparator, class _KeyT, class _Arg, class = void>
|
|
38
|
+
inline const bool __is_transparently_comparable_v = false;
|
|
39
|
+
|
|
32
40
|
_LIBCPP_END_NAMESPACE_STD
|
|
33
41
|
|
|
34
42
|
#endif // _LIBCPP___FUNCTIONAL_IS_TRANSPARENT
|
|
@@ -43,7 +43,8 @@ public:
|
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
template <class _Rp, class _Tp>
|
|
46
|
-
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __mem_fn<_Rp _Tp::*>
|
|
46
|
+
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 __mem_fn<_Rp _Tp::*>
|
|
47
|
+
mem_fn(_Rp _Tp::* __pm) _NOEXCEPT {
|
|
47
48
|
return __mem_fn<_Rp _Tp::*>(__pm);
|
|
48
49
|
}
|
|
49
50
|
|