@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
|
@@ -10,20 +10,6 @@
|
|
|
10
10
|
#define _LIBCPP___TUPLE_SFINAE_HELPERS_H
|
|
11
11
|
|
|
12
12
|
#include <__config>
|
|
13
|
-
#include <__cstddef/size_t.h>
|
|
14
|
-
#include <__fwd/tuple.h>
|
|
15
|
-
#include <__tuple/make_tuple_types.h>
|
|
16
|
-
#include <__tuple/tuple_element.h>
|
|
17
|
-
#include <__tuple/tuple_like_ext.h>
|
|
18
|
-
#include <__tuple/tuple_size.h>
|
|
19
|
-
#include <__tuple/tuple_types.h>
|
|
20
|
-
#include <__type_traits/conjunction.h>
|
|
21
|
-
#include <__type_traits/enable_if.h>
|
|
22
|
-
#include <__type_traits/integral_constant.h>
|
|
23
|
-
#include <__type_traits/is_constructible.h>
|
|
24
|
-
#include <__type_traits/is_same.h>
|
|
25
|
-
#include <__type_traits/remove_cvref.h>
|
|
26
|
-
#include <__type_traits/remove_reference.h>
|
|
27
13
|
|
|
28
14
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
29
15
|
# pragma GCC system_header
|
|
@@ -33,36 +19,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
33
19
|
|
|
34
20
|
#ifndef _LIBCPP_CXX03_LANG
|
|
35
21
|
|
|
36
|
-
struct
|
|
37
|
-
template <template <class, class...> class _Trait, class... _LArgs, class... _RArgs>
|
|
38
|
-
static auto __do_test(__tuple_types<_LArgs...>,
|
|
39
|
-
__tuple_types<_RArgs...>) -> __all<__enable_if_t<_Trait<_LArgs, _RArgs>::value, bool>{true}...>;
|
|
40
|
-
template <template <class...> class>
|
|
41
|
-
static auto __do_test(...) -> false_type;
|
|
42
|
-
|
|
43
|
-
template <class _FromArgs, class _ToArgs>
|
|
44
|
-
using __constructible _LIBCPP_NODEBUG = decltype(__do_test<is_constructible>(_ToArgs{}, _FromArgs{}));
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
// __tuple_constructible
|
|
48
|
-
|
|
49
|
-
template <class _Tp,
|
|
50
|
-
class _Up,
|
|
51
|
-
bool = __tuple_like_ext<__libcpp_remove_reference_t<_Tp> >::value,
|
|
52
|
-
bool = __tuple_like_ext<_Up>::value>
|
|
53
|
-
struct __tuple_constructible : public false_type {};
|
|
54
|
-
|
|
55
|
-
template <class _Tp, class _Up>
|
|
56
|
-
struct __tuple_constructible<_Tp, _Up, true, true>
|
|
57
|
-
: public __tuple_sfinae_base::__constructible< typename __make_tuple_types<_Tp>::type,
|
|
58
|
-
typename __make_tuple_types<_Up>::type > {};
|
|
59
|
-
|
|
60
|
-
template <size_t _Ip, class... _Tp>
|
|
61
|
-
struct tuple_element<_Ip, tuple<_Tp...> > {
|
|
62
|
-
using type _LIBCPP_NODEBUG = typename tuple_element<_Ip, __tuple_types<_Tp...> >::type;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
struct _LIBCPP_EXPORTED_FROM_ABI __check_tuple_constructor_fail {
|
|
22
|
+
struct __check_tuple_constructor_fail {
|
|
66
23
|
static _LIBCPP_HIDE_FROM_ABI constexpr bool __enable_explicit_default() { return false; }
|
|
67
24
|
static _LIBCPP_HIDE_FROM_ABI constexpr bool __enable_implicit_default() { return false; }
|
|
68
25
|
template <class...>
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
|
|
12
12
|
#include <__config>
|
|
13
13
|
#include <__cstddef/size_t.h>
|
|
14
|
-
#include <__tuple/tuple_indices.h>
|
|
15
|
-
#include <__tuple/tuple_types.h>
|
|
16
14
|
|
|
17
15
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
18
16
|
# pragma GCC system_header
|
|
@@ -38,21 +36,11 @@ struct tuple_element<_Ip, const volatile _Tp> {
|
|
|
38
36
|
using type _LIBCPP_NODEBUG = const volatile typename tuple_element<_Ip, _Tp>::type;
|
|
39
37
|
};
|
|
40
38
|
|
|
41
|
-
#ifndef _LIBCPP_CXX03_LANG
|
|
42
|
-
|
|
43
|
-
template <size_t _Ip, class... _Types>
|
|
44
|
-
struct tuple_element<_Ip, __tuple_types<_Types...> > {
|
|
45
|
-
static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range");
|
|
46
|
-
using type _LIBCPP_NODEBUG = __type_pack_element<_Ip, _Types...>;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
39
|
# if _LIBCPP_STD_VER >= 14
|
|
50
40
|
template <size_t _Ip, class... _Tp>
|
|
51
41
|
using tuple_element_t _LIBCPP_NODEBUG = typename tuple_element<_Ip, _Tp...>::type;
|
|
52
42
|
# endif
|
|
53
43
|
|
|
54
|
-
#endif // _LIBCPP_CXX03_LANG
|
|
55
|
-
|
|
56
44
|
_LIBCPP_END_NAMESPACE_STD
|
|
57
45
|
|
|
58
46
|
#endif // _LIBCPP___TUPLE_TUPLE_ELEMENT_H
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
#include <__config>
|
|
13
13
|
#include <__cstddef/size_t.h>
|
|
14
14
|
#include <__fwd/tuple.h>
|
|
15
|
-
#include <__tuple/tuple_types.h>
|
|
16
15
|
#include <__type_traits/enable_if.h>
|
|
17
16
|
#include <__type_traits/integral_constant.h>
|
|
18
17
|
#include <__type_traits/is_const.h>
|
|
@@ -59,9 +58,6 @@ struct tuple_size<const volatile _Tp> : public tuple_size<_Tp> {};
|
|
|
59
58
|
template <class... _Tp>
|
|
60
59
|
struct tuple_size<tuple<_Tp...> > : public integral_constant<size_t, sizeof...(_Tp)> {};
|
|
61
60
|
|
|
62
|
-
template <class... _Tp>
|
|
63
|
-
struct tuple_size<__tuple_types<_Tp...> > : public integral_constant<size_t, sizeof...(_Tp)> {};
|
|
64
|
-
|
|
65
61
|
# if _LIBCPP_STD_VER >= 17
|
|
66
62
|
template <class _Tp>
|
|
67
63
|
inline constexpr size_t tuple_size_v = tuple_size<_Tp>::value;
|
|
@@ -0,0 +1,45 @@
|
|
|
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___TUPLE_TUPLE_TRANSFORM_H
|
|
11
|
+
#define _LIBCPP___TUPLE_TUPLE_TRANSFORM_H
|
|
12
|
+
|
|
13
|
+
#include <__config>
|
|
14
|
+
|
|
15
|
+
#include <__functional/invoke.h>
|
|
16
|
+
#include <__utility/forward.h>
|
|
17
|
+
#include <tuple>
|
|
18
|
+
|
|
19
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
20
|
+
# pragma GCC system_header
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
_LIBCPP_PUSH_MACROS
|
|
24
|
+
#include <__undef_macros>
|
|
25
|
+
|
|
26
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
27
|
+
|
|
28
|
+
#if _LIBCPP_STD_VER >= 23
|
|
29
|
+
|
|
30
|
+
template <class _Fun, class _Tuple>
|
|
31
|
+
_LIBCPP_HIDE_FROM_ABI constexpr auto __tuple_transform(_Fun&& __f, _Tuple&& __tuple) {
|
|
32
|
+
return std::apply(
|
|
33
|
+
[&]<class... _Types>(_Types&&... __elements) {
|
|
34
|
+
return tuple<invoke_result_t<_Fun&, _Types>...>(std::invoke(__f, std::forward<_Types>(__elements))...);
|
|
35
|
+
},
|
|
36
|
+
std::forward<_Tuple>(__tuple));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#endif // _LIBCPP_STD_VER >= 23
|
|
40
|
+
|
|
41
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
42
|
+
|
|
43
|
+
_LIBCPP_POP_MACROS
|
|
44
|
+
|
|
45
|
+
#endif // _LIBCPP___TUPLE_TUPLE_TRANSFORM_H
|
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
|
|
12
12
|
#include <__config>
|
|
13
13
|
#include <__cstddef/size_t.h>
|
|
14
|
-
#include <__type_traits/integral_constant.h>
|
|
15
|
-
#include <__type_traits/type_list.h>
|
|
16
14
|
|
|
17
15
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
18
16
|
# pragma GCC system_header
|
|
@@ -21,10 +19,10 @@
|
|
|
21
19
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
22
20
|
|
|
23
21
|
template <class _Tp>
|
|
24
|
-
struct
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
22
|
+
struct _ALIGNAS(_LIBCPP_PREFERRED_ALIGNOF(_Tp)) _AlignedAsT {};
|
|
23
|
+
|
|
24
|
+
template <class... _Args>
|
|
25
|
+
struct __max_align_impl : _AlignedAsT<_Args>... {};
|
|
28
26
|
|
|
29
27
|
struct __struct_double {
|
|
30
28
|
long double __lx;
|
|
@@ -33,41 +31,16 @@ struct __struct_double4 {
|
|
|
33
31
|
double __lx[4];
|
|
34
32
|
};
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
__align_type<unsigned short>,
|
|
39
|
-
__align_type<unsigned int>,
|
|
40
|
-
__align_type<unsigned long>,
|
|
41
|
-
__align_type<unsigned long long>,
|
|
42
|
-
__align_type<double>,
|
|
43
|
-
__align_type<long double>,
|
|
44
|
-
__align_type<__struct_double>,
|
|
45
|
-
__align_type<__struct_double4>,
|
|
46
|
-
__align_type<int*> >;
|
|
47
|
-
|
|
48
|
-
template <class _TL, size_t _Len>
|
|
49
|
-
struct __find_max_align;
|
|
50
|
-
|
|
51
|
-
template <class _Head, size_t _Len>
|
|
52
|
-
struct __find_max_align<__type_list<_Head>, _Len> : public integral_constant<size_t, _Head::value> {};
|
|
53
|
-
|
|
54
|
-
template <size_t _Len, size_t _A1, size_t _A2>
|
|
55
|
-
struct __select_align {
|
|
56
|
-
private:
|
|
57
|
-
static const size_t __min = _A2 < _A1 ? _A2 : _A1;
|
|
58
|
-
static const size_t __max = _A1 < _A2 ? _A2 : _A1;
|
|
59
|
-
|
|
60
|
-
public:
|
|
61
|
-
static const size_t value = _Len < __max ? __min : __max;
|
|
62
|
-
};
|
|
34
|
+
inline const size_t __aligned_storage_max_align =
|
|
35
|
+
_LIBCPP_ALIGNOF(__max_align_impl<unsigned long long, double, long double, __struct_double, __struct_double4, int*>);
|
|
63
36
|
|
|
64
|
-
template <
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
37
|
+
template <size_t _Len>
|
|
38
|
+
inline const size_t __aligned_storage_alignment =
|
|
39
|
+
_Len > __aligned_storage_max_align
|
|
40
|
+
? __aligned_storage_max_align
|
|
41
|
+
: size_t(1) << ((sizeof(size_t) * __CHAR_BIT__) - __builtin_clzg(_Len) - 1);
|
|
69
42
|
|
|
70
|
-
template <size_t _Len, size_t _Align =
|
|
43
|
+
template <size_t _Len, size_t _Align = __aligned_storage_alignment<_Len> >
|
|
71
44
|
struct _LIBCPP_DEPRECATED_IN_CXX23 _LIBCPP_NO_SPECIALIZATIONS aligned_storage {
|
|
72
45
|
union _ALIGNAS(_Align) type {
|
|
73
46
|
unsigned char __data[(_Len + _Align - 1) / _Align * _Align];
|
|
@@ -77,7 +50,7 @@ struct _LIBCPP_DEPRECATED_IN_CXX23 _LIBCPP_NO_SPECIALIZATIONS aligned_storage {
|
|
|
77
50
|
#if _LIBCPP_STD_VER >= 14
|
|
78
51
|
|
|
79
52
|
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
|
|
80
|
-
template <size_t _Len, size_t _Align =
|
|
53
|
+
template <size_t _Len, size_t _Align = __aligned_storage_alignment<_Len> >
|
|
81
54
|
using aligned_storage_t _LIBCPP_DEPRECATED_IN_CXX23 = typename aligned_storage<_Len, _Align>::type;
|
|
82
55
|
_LIBCPP_SUPPRESS_DEPRECATED_POP
|
|
83
56
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#define _LIBCPP___TYPE_TRAITS_DESUGARS_TO_H
|
|
11
11
|
|
|
12
12
|
#include <__config>
|
|
13
|
+
#include <__type_traits/integral_constant.h>
|
|
13
14
|
|
|
14
15
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
15
16
|
# pragma GCC system_header
|
|
@@ -64,6 +65,9 @@ template <class _CanonicalTag, class _Operation, class... _Args>
|
|
|
64
65
|
inline const bool __desugars_to_v<_CanonicalTag, _Operation&&, _Args...> =
|
|
65
66
|
__desugars_to_v<_CanonicalTag, _Operation, _Args...>;
|
|
66
67
|
|
|
68
|
+
template <class _CanonicalTag, class _Operation, class... _Args>
|
|
69
|
+
struct __desugars_to : integral_constant<bool, __desugars_to_v<_CanonicalTag, _Operation, _Args...> > {};
|
|
70
|
+
|
|
67
71
|
_LIBCPP_END_NAMESPACE_STD
|
|
68
72
|
|
|
69
73
|
#endif // _LIBCPP___TYPE_TRAITS_DESUGARS_TO_H
|
|
@@ -62,6 +62,9 @@
|
|
|
62
62
|
//
|
|
63
63
|
// template <class Func, class... Args>
|
|
64
64
|
// using __invoke_result_t = invoke_result_t<Func, Args...>;
|
|
65
|
+
//
|
|
66
|
+
// template <class Ret, class Func, class... Args>
|
|
67
|
+
// struct __is_invocable_r : is_invocable_r<Ret, Func, Args...> {};
|
|
65
68
|
|
|
66
69
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
67
70
|
|
|
@@ -112,8 +115,10 @@ inline const bool __is_invocable_r_v = __is_invocable_r_impl<_Ret, __is_invocabl
|
|
|
112
115
|
template <bool __is_invocable, class... _Args>
|
|
113
116
|
inline const bool __is_nothrow_invocable_impl = false;
|
|
114
117
|
|
|
118
|
+
# ifndef _LIBCPP_CXX03_LANG
|
|
115
119
|
template <class... _Args>
|
|
116
120
|
inline const bool __is_nothrow_invocable_impl<true, _Args...> = noexcept(__builtin_invoke(std::declval<_Args>()...));
|
|
121
|
+
# endif
|
|
117
122
|
|
|
118
123
|
template <class... _Args>
|
|
119
124
|
inline const bool __is_nothrow_invocable_v = __is_nothrow_invocable_impl<__is_invocable_v<_Args...>, _Args...>;
|
|
@@ -327,6 +332,9 @@ using __invoke_result_t _LIBCPP_NODEBUG = typename __invoke_result<_Func, _Args.
|
|
|
327
332
|
|
|
328
333
|
#endif // __has_builtin(__builtin_invoke_r)
|
|
329
334
|
|
|
335
|
+
template <class _Ret, class _Func, class... _Args>
|
|
336
|
+
struct __is_invocable_r : integral_constant<bool, __is_invocable_r_v<_Ret, _Func, _Args...> > {};
|
|
337
|
+
|
|
330
338
|
template <class _Ret, bool = is_void<_Ret>::value>
|
|
331
339
|
struct __invoke_void_return_wrapper {
|
|
332
340
|
template <class... _Args>
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
|
|
12
12
|
#include <__config>
|
|
13
13
|
#include <__cstddef/size_t.h>
|
|
14
|
-
#include <__type_traits/integral_constant.h>
|
|
15
14
|
#include <__type_traits/void_t.h>
|
|
16
15
|
#include <__utility/declval.h>
|
|
17
16
|
|
|
@@ -21,13 +20,13 @@
|
|
|
21
20
|
|
|
22
21
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
23
22
|
|
|
24
|
-
template <
|
|
25
|
-
|
|
23
|
+
template <class _Alloc, class = void, class = void>
|
|
24
|
+
inline const bool __is_allocator_v = false;
|
|
26
25
|
|
|
27
|
-
template <
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
template <class _Alloc>
|
|
27
|
+
inline const bool __is_allocator_v<_Alloc,
|
|
28
|
+
__void_t<typename _Alloc::value_type>,
|
|
29
|
+
__void_t<decltype(std::declval<_Alloc&>().allocate(size_t()))> > = true;
|
|
31
30
|
|
|
32
31
|
_LIBCPP_END_NAMESPACE_STD
|
|
33
32
|
|
|
@@ -26,6 +26,32 @@ template <class _Tp>
|
|
|
26
26
|
_LIBCPP_NO_SPECIALIZATIONS inline constexpr bool is_array_v = __is_array(_Tp);
|
|
27
27
|
#endif
|
|
28
28
|
|
|
29
|
+
template <class _Tp>
|
|
30
|
+
inline const bool __is_bounded_array_v = __is_bounded_array(_Tp);
|
|
31
|
+
|
|
32
|
+
#if _LIBCPP_STD_VER >= 20
|
|
33
|
+
|
|
34
|
+
template <class _Tp>
|
|
35
|
+
struct _LIBCPP_NO_SPECIALIZATIONS is_bounded_array : bool_constant<__is_bounded_array(_Tp)> {};
|
|
36
|
+
|
|
37
|
+
template <class _Tp>
|
|
38
|
+
_LIBCPP_NO_SPECIALIZATIONS inline constexpr bool is_bounded_array_v = __is_bounded_array(_Tp);
|
|
39
|
+
|
|
40
|
+
#endif
|
|
41
|
+
|
|
42
|
+
template <class _Tp>
|
|
43
|
+
inline const bool __is_unbounded_array_v = __is_unbounded_array(_Tp);
|
|
44
|
+
|
|
45
|
+
#if _LIBCPP_STD_VER >= 20
|
|
46
|
+
|
|
47
|
+
template <class _Tp>
|
|
48
|
+
struct _LIBCPP_NO_SPECIALIZATIONS is_unbounded_array : bool_constant<__is_unbounded_array(_Tp)> {};
|
|
49
|
+
|
|
50
|
+
template <class _Tp>
|
|
51
|
+
_LIBCPP_NO_SPECIALIZATIONS inline constexpr bool is_unbounded_array_v = __is_unbounded_array(_Tp);
|
|
52
|
+
|
|
53
|
+
#endif
|
|
54
|
+
|
|
29
55
|
_LIBCPP_END_NAMESPACE_STD
|
|
30
56
|
|
|
31
57
|
#endif // _LIBCPP___TYPE_TRAITS_IS_ARRAY_H
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
28
28
|
|
|
29
29
|
template <class _Tp, class _Up, class = void>
|
|
30
|
-
|
|
30
|
+
inline const bool __is_equality_comparable_v = false;
|
|
31
31
|
|
|
32
32
|
template <class _Tp, class _Up>
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
inline const bool
|
|
34
|
+
__is_equality_comparable_v<_Tp, _Up, __void_t<decltype(std::declval<_Tp>() == std::declval<_Up>())> > = true;
|
|
35
35
|
|
|
36
36
|
// A type is_trivially_equality_comparable if the expression `a == b` is equivalent to `std::memcmp(&a, &b, sizeof(T))`
|
|
37
37
|
// (with `a` and `b` being of type `T`). For the case where we compare two object of the same type, we can use
|
|
@@ -48,40 +48,35 @@ struct __is_equality_comparable<_Tp, _Up, __void_t<decltype(std::declval<_Tp>()
|
|
|
48
48
|
// representation may not be equivalent.
|
|
49
49
|
|
|
50
50
|
template <class _Tp, class _Up, class = void>
|
|
51
|
-
|
|
51
|
+
inline const bool __is_trivially_equality_comparable_impl = false;
|
|
52
52
|
|
|
53
53
|
template <class _Tp>
|
|
54
|
-
|
|
54
|
+
inline const bool __is_trivially_equality_comparable_impl<_Tp, _Tp>
|
|
55
55
|
#if __has_builtin(__is_trivially_equality_comparable)
|
|
56
|
-
|
|
57
|
-
};
|
|
56
|
+
= __is_trivially_equality_comparable(_Tp) && __is_equality_comparable_v<_Tp, _Tp>;
|
|
58
57
|
#else
|
|
59
|
-
|
|
60
|
-
};
|
|
58
|
+
= is_integral<_Tp>::value;
|
|
61
59
|
#endif // __has_builtin(__is_trivially_equality_comparable)
|
|
62
60
|
|
|
63
61
|
template <class _Tp, class _Up>
|
|
64
|
-
|
|
62
|
+
inline const bool __is_trivially_equality_comparable_impl<
|
|
65
63
|
_Tp,
|
|
66
64
|
_Up,
|
|
67
|
-
__enable_if_t<is_integral<_Tp>::value && is_integral<_Up>::value && !is_same<_Tp, _Up>::value
|
|
68
|
-
|
|
65
|
+
__enable_if_t<is_integral<_Tp>::value && is_integral<_Up>::value && !is_same<_Tp, _Up>::value> > =
|
|
66
|
+
is_signed<_Tp>::value == is_signed<_Up>::value && sizeof(_Tp) == sizeof(_Up);
|
|
69
67
|
|
|
70
68
|
template <class _Tp>
|
|
71
|
-
|
|
69
|
+
inline const bool __is_trivially_equality_comparable_impl<_Tp*, _Tp*> = true;
|
|
72
70
|
|
|
73
71
|
// TODO: Use is_pointer_inverconvertible_base_of
|
|
74
72
|
template <class _Tp, class _Up>
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
__is_equality_comparable<_Tp*, _Up*>::value &&
|
|
79
|
-
(is_same<__remove_cv_t<_Tp>, __remove_cv_t<_Up> >::value || is_void<_Tp>::value || is_void<_Up>::value)> {
|
|
80
|
-
};
|
|
73
|
+
inline const bool __is_trivially_equality_comparable_impl<_Tp*, _Up*> =
|
|
74
|
+
__is_equality_comparable_v<_Tp*, _Up*> &&
|
|
75
|
+
(is_same<__remove_cv_t<_Tp>, __remove_cv_t<_Up> >::value || is_void<_Tp>::value || is_void<_Up>::value);
|
|
81
76
|
|
|
82
77
|
template <class _Tp, class _Up>
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
inline const bool __is_trivially_equality_comparable_v =
|
|
79
|
+
__is_trivially_equality_comparable_impl<__remove_cv_t<_Tp>, __remove_cv_t<_Up> >;
|
|
85
80
|
|
|
86
81
|
_LIBCPP_END_NAMESPACE_STD
|
|
87
82
|
|
|
@@ -20,18 +20,19 @@
|
|
|
20
20
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
21
21
|
|
|
22
22
|
// clang-format off
|
|
23
|
-
template <class _Tp>
|
|
24
|
-
template <>
|
|
25
|
-
template <>
|
|
26
|
-
template <>
|
|
23
|
+
template <class _Tp> inline const bool __is_floating_point_impl = false;
|
|
24
|
+
template <> inline const bool __is_floating_point_impl<float> = true;
|
|
25
|
+
template <> inline const bool __is_floating_point_impl<double> = true;
|
|
26
|
+
template <> inline const bool __is_floating_point_impl<long double> = true;
|
|
27
27
|
// clang-format on
|
|
28
28
|
|
|
29
29
|
template <class _Tp>
|
|
30
|
-
struct _LIBCPP_NO_SPECIALIZATIONS is_floating_point
|
|
30
|
+
struct _LIBCPP_NO_SPECIALIZATIONS is_floating_point
|
|
31
|
+
: integral_constant<bool, __is_floating_point_impl<__remove_cv_t<_Tp> > > {};
|
|
31
32
|
|
|
32
33
|
#if _LIBCPP_STD_VER >= 17
|
|
33
34
|
template <class _Tp>
|
|
34
|
-
_LIBCPP_NO_SPECIALIZATIONS inline constexpr bool is_floating_point_v =
|
|
35
|
+
_LIBCPP_NO_SPECIALIZATIONS inline constexpr bool is_floating_point_v = __is_floating_point_impl<__remove_cv_t<_Tp>>;
|
|
35
36
|
#endif
|
|
36
37
|
|
|
37
38
|
_LIBCPP_END_NAMESPACE_STD
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#ifndef _LIBCPP___TYPE_TRAITS_IS_GENERIC_TRANSPARENT_COMPARATOR_H
|
|
10
|
+
#define _LIBCPP___TYPE_TRAITS_IS_GENERIC_TRANSPARENT_COMPARATOR_H
|
|
11
|
+
|
|
12
|
+
#include <__config>
|
|
13
|
+
|
|
14
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
15
|
+
# pragma GCC system_header
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
19
|
+
|
|
20
|
+
// This trait returns true if the given _Comparator is known to accept any two types for comparison. This is separate
|
|
21
|
+
// from `__is_transparent_v`, since that only enables overloads of specific functions, but doesn't give any semantic
|
|
22
|
+
// guarantees. This trait guarantess that the comparator simply calls the appropriate comparison functions for any two
|
|
23
|
+
// types.
|
|
24
|
+
|
|
25
|
+
template <class _Comparator>
|
|
26
|
+
inline const bool __is_generic_transparent_comparator_v = false;
|
|
27
|
+
|
|
28
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
29
|
+
|
|
30
|
+
#endif // _LIBCPP___TYPE_TRAITS_IS_GENERIC_TRANSPARENT_COMPARATOR_H
|
|
@@ -30,15 +30,11 @@
|
|
|
30
30
|
|
|
31
31
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
32
32
|
|
|
33
|
-
#if _LIBCPP_STD_VER >= 17
|
|
34
|
-
|
|
35
33
|
template <class _Tp, template <class...> class _Template>
|
|
36
|
-
inline
|
|
34
|
+
inline const bool __is_specialization_v = false; // true if and only if _Tp is a specialization of _Template
|
|
37
35
|
|
|
38
36
|
template <template <class...> class _Template, class... _Args>
|
|
39
|
-
inline
|
|
40
|
-
|
|
41
|
-
#endif // _LIBCPP_STD_VER >= 17
|
|
37
|
+
inline const bool __is_specialization_v<_Template<_Args...>, _Template> = true;
|
|
42
38
|
|
|
43
39
|
_LIBCPP_END_NAMESPACE_STD
|
|
44
40
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#ifndef _LIBCPP___TYPE_TRAITS_IS_WITHIN_LIFETIME_H
|
|
10
|
+
#define _LIBCPP___TYPE_TRAITS_IS_WITHIN_LIFETIME_H
|
|
11
|
+
|
|
12
|
+
#include <__config>
|
|
13
|
+
|
|
14
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
15
|
+
# pragma GCC system_header
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
19
|
+
|
|
20
|
+
#if _LIBCPP_STD_VER >= 26 && __has_builtin(__builtin_is_within_lifetime)
|
|
21
|
+
template <class _Tp>
|
|
22
|
+
_LIBCPP_HIDE_FROM_ABI consteval bool is_within_lifetime(const _Tp* __p) noexcept {
|
|
23
|
+
return __builtin_is_within_lifetime(__p);
|
|
24
|
+
}
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
28
|
+
|
|
29
|
+
#endif // _LIBCPP___TYPE_TRAITS_IS_WITHIN_LIFETIME_H
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#ifndef _LIBCPP___TYPE_TRAITS_MAKE_TRANSPARENT_H
|
|
10
|
+
#define _LIBCPP___TYPE_TRAITS_MAKE_TRANSPARENT_H
|
|
11
|
+
|
|
12
|
+
#include <__config>
|
|
13
|
+
#include <__type_traits/enable_if.h>
|
|
14
|
+
#include <__type_traits/is_empty.h>
|
|
15
|
+
#include <__type_traits/is_same.h>
|
|
16
|
+
|
|
17
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
18
|
+
# pragma GCC system_header
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
22
|
+
|
|
23
|
+
// __make_transparent tries to create a transparent comparator from its non-transparent counterpart, e.g. obtain
|
|
24
|
+
// `less<>` from `less<T>`. This is useful in cases where conversions can be avoided (e.g. a string literal to a
|
|
25
|
+
// std::string).
|
|
26
|
+
|
|
27
|
+
template <class _Tp, class _Comparator>
|
|
28
|
+
struct __make_transparent {
|
|
29
|
+
using type _LIBCPP_NODEBUG = _Comparator;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
template <class _Tp, class _Comparator>
|
|
33
|
+
using __make_transparent_t _LIBCPP_NODEBUG = typename __make_transparent<_Tp, _Comparator>::type;
|
|
34
|
+
|
|
35
|
+
template <class _Tp,
|
|
36
|
+
class _Comparator,
|
|
37
|
+
__enable_if_t<is_same<_Comparator, __make_transparent_t<_Tp, _Comparator> >::value, int> = 0>
|
|
38
|
+
_LIBCPP_HIDE_FROM_ABI _Comparator& __as_transparent(_Comparator& __comp) {
|
|
39
|
+
return __comp;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
template <class _Tp,
|
|
43
|
+
class _Comparator,
|
|
44
|
+
__enable_if_t<!is_same<_Comparator, __make_transparent_t<_Tp, _Comparator> >::value, int> = 0>
|
|
45
|
+
_LIBCPP_HIDE_FROM_ABI __make_transparent_t<_Tp, _Comparator> __as_transparent(_Comparator&) {
|
|
46
|
+
static_assert(is_empty<_Comparator>::value);
|
|
47
|
+
return __make_transparent_t<_Tp, _Comparator>();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
51
|
+
|
|
52
|
+
#endif // _LIBCPP___TYPE_TRAITS_MAKE_TRANSPARENT_H
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
20
20
|
|
|
21
|
-
#if _LIBCPP_STD_VER >= 23
|
|
21
|
+
#if _LIBCPP_STD_VER >= 23
|
|
22
22
|
|
|
23
23
|
template <class _Tp, class _Up>
|
|
24
24
|
struct _LIBCPP_NO_SPECIALIZATIONS reference_constructs_from_temporary
|
|
@@ -30,14 +30,8 @@ _LIBCPP_NO_SPECIALIZATIONS inline constexpr bool reference_constructs_from_tempo
|
|
|
30
30
|
|
|
31
31
|
#endif
|
|
32
32
|
|
|
33
|
-
#if __has_builtin(__reference_constructs_from_temporary)
|
|
34
33
|
template <class _Tp, class _Up>
|
|
35
34
|
inline const bool __reference_constructs_from_temporary_v = __reference_constructs_from_temporary(_Tp, _Up);
|
|
36
|
-
#else
|
|
37
|
-
// TODO(LLVM 22): Remove this as all supported compilers should have __reference_constructs_from_temporary implemented.
|
|
38
|
-
template <class _Tp, class _Up>
|
|
39
|
-
inline const bool __reference_constructs_from_temporary_v = __reference_binds_to_temporary(_Tp, _Up);
|
|
40
|
-
#endif
|
|
41
35
|
|
|
42
36
|
_LIBCPP_END_NAMESPACE_STD
|
|
43
37
|
|