re2 1.24.1 → 1.25.0
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/LICENSE +15 -20
- package/README.md +62 -4
- package/binding.gyp +1 -2
- package/lib/addon.cc +7 -3
- package/lib/exec.cc +4 -4
- package/lib/match.cc +4 -4
- package/lib/pattern.cc +148 -1
- package/lib/replace.cc +5 -4
- package/lib/search.cc +1 -1
- package/lib/set.cc +75 -0
- package/lib/test.cc +1 -1
- package/lib/unicode_properties.h +15840 -0
- package/lib/wrapped_re2.h +11 -4
- package/lib/wrapped_re2_set.h +3 -1
- package/llms-full.txt +37 -7
- package/llms.txt +4 -1
- package/package.json +11 -10
- package/re2.d.ts +2 -0
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +87 -74
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/FAQ.md +130 -79
- package/vendor/abseil-cpp/MODULE.bazel +6 -7
- package/vendor/abseil-cpp/absl/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- package/vendor/abseil-cpp/absl/algorithm/container.h +164 -17
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +390 -13
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +53 -6
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +28 -4
- package/vendor/abseil-cpp/absl/base/attributes.h +61 -42
- package/vendor/abseil-cpp/absl/base/call_once.h +1 -0
- package/vendor/abseil-cpp/absl/base/casts.h +8 -1
- package/vendor/abseil-cpp/absl/base/casts_test.cc +3 -6
- package/vendor/abseil-cpp/absl/base/config.h +54 -10
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +9 -9
- package/vendor/abseil-cpp/absl/base/fast_type_id.h +30 -2
- package/vendor/abseil-cpp/absl/base/fast_type_id_test.cc +3 -0
- package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +15 -12
- package/vendor/abseil-cpp/absl/base/internal/hardening.h +136 -0
- package/vendor/abseil-cpp/absl/base/internal/hardening_test.cc +168 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +2 -2
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +1 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- package/vendor/abseil-cpp/absl/base/macros.h +36 -20
- package/vendor/abseil-cpp/absl/base/nullability.h +4 -3
- package/vendor/abseil-cpp/absl/base/optimization.h +3 -2
- package/vendor/abseil-cpp/absl/base/optimization_test.cc +4 -3
- package/vendor/abseil-cpp/absl/base/options.h +55 -1
- package/vendor/abseil-cpp/absl/base/policy_checks.h +5 -5
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +19 -28
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +19 -7
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +6 -5
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +3 -5
- package/vendor/abseil-cpp/absl/container/btree_set.h +5 -5
- package/vendor/abseil-cpp/absl/container/btree_test.cc +11 -14
- package/vendor/abseil-cpp/absl/container/chunked_queue.h +8 -6
- package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +5 -5
- package/vendor/abseil-cpp/absl/container/fixed_array.h +14 -13
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +3 -3
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +18 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +34 -1
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +21 -7
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +29 -29
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/btree.h +32 -24
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +16 -17
- package/vendor/abseil-cpp/absl/container/internal/common.h +6 -5
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +16 -16
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +13 -13
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +41 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +4 -4
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +27 -19
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -17
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +12 -30
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +28 -28
- package/vendor/abseil-cpp/absl/container/internal/layout.h +13 -13
- package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +60 -62
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +59 -39
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +619 -326
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +25 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +4 -4
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +575 -159
- package/vendor/abseil-cpp/absl/container/linked_hash_map.h +2 -2
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +27 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +34 -0
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +25 -11
- package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +7 -4
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +0 -1
- package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -3
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +2 -1
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +143 -81
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +9 -31
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +3 -33
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +2 -1
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +12 -2
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +2 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -0
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +46 -36
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +18 -58
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +5 -48
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +10 -124
- package/vendor/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +58 -106
- package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +37 -36
- package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -3
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +1 -1
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +1 -1
- package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +5 -5
- package/vendor/abseil-cpp/absl/flags/flag_test.cc +30 -30
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +4 -4
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +6 -6
- package/vendor/abseil-cpp/absl/flags/marshalling.h +2 -28
- package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +12 -11
- package/vendor/abseil-cpp/absl/flags/reflection_test.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +26 -1
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +29 -1
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -14
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +46 -47
- package/vendor/abseil-cpp/absl/functional/bind_back.h +79 -0
- package/vendor/abseil-cpp/absl/functional/bind_back_test.cc +237 -0
- package/vendor/abseil-cpp/absl/functional/bind_front.h +7 -1
- package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +4 -4
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +28 -28
- package/vendor/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +13 -13
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +1 -2
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -2
- package/vendor/abseil-cpp/absl/hash/hash.h +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +14 -20
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +11 -9
- package/vendor/abseil-cpp/absl/hash/internal/city.cc +39 -51
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +165 -47
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +82 -26
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +36 -1
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +8 -5
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +5 -2
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +5 -3
- package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +15 -1
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -4
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +14 -0
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +13 -0
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +3 -3
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +2 -2
- package/vendor/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +3 -3
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +19 -2
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/log_streamer.h +29 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +1 -1
- package/vendor/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +6 -5
- package/vendor/abseil-cpp/absl/memory/memory.h +55 -5
- package/vendor/abseil-cpp/absl/memory/memory_test.cc +55 -1
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires.h +1 -1
- package/vendor/abseil-cpp/absl/meta/type_traits.h +119 -55
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +7 -7
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +6 -6
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +3 -1
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +0 -4
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +32 -33
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +25 -2
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +8 -5
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +13 -1
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +23 -2
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +1 -1
- package/vendor/abseil-cpp/absl/random/beta_distribution.h +2 -2
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +43 -0
- package/vendor/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/distributions.h +17 -17
- package/vendor/abseil-cpp/absl/random/distributions_test.cc +4 -4
- package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +4 -2
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +14 -40
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +2 -2
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +4 -4
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- package/vendor/abseil-cpp/absl/random/internal/traits.h +21 -0
- package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -0
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +2 -1
- package/vendor/abseil-cpp/absl/random/mocking_access.h +74 -0
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +9 -19
- package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +81 -0
- package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +26 -2
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +22 -8
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +43 -43
- package/vendor/abseil-cpp/absl/status/status.cc +62 -70
- package/vendor/abseil-cpp/absl/status/status.h +249 -23
- package/vendor/abseil-cpp/absl/status/status_benchmark.cc +12 -0
- package/vendor/abseil-cpp/absl/status/status_builder.cc +196 -0
- package/vendor/abseil-cpp/absl/status/status_builder.h +978 -0
- package/vendor/abseil-cpp/absl/status/status_builder_test.cc +380 -0
- package/vendor/abseil-cpp/absl/status/status_macros.h +484 -0
- package/vendor/abseil-cpp/absl/status/status_macros_test.cc +634 -0
- package/vendor/abseil-cpp/absl/status/status_matchers.h +2 -1
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +3 -4
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- package/vendor/abseil-cpp/absl/status/status_test.cc +443 -13
- package/vendor/abseil-cpp/absl/status/statusor.h +69 -36
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +132 -35
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +42 -7
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +33 -4
- package/vendor/abseil-cpp/absl/strings/ascii.h +1 -2
- package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +5 -5
- package/vendor/abseil-cpp/absl/strings/cord.cc +26 -7
- package/vendor/abseil-cpp/absl/strings/cord.h +23 -13
- package/vendor/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +85 -9
- package/vendor/abseil-cpp/absl/strings/escaping.cc +176 -30
- package/vendor/abseil-cpp/absl/strings/escaping.h +12 -2
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +1 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +18 -18
- package/vendor/abseil-cpp/absl/strings/has_absl_stringify_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/has_ostream_operator_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +10 -10
- package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- package/vendor/abseil-cpp/absl/strings/internal/escaping.h +2 -26
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +23 -2
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +6 -2
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -24
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +16 -41
- package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +12 -20
- package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +510 -307
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -1
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +9 -10
- package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +6 -5
- package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream_test.cc +111 -0
- package/vendor/abseil-cpp/absl/strings/numbers.cc +406 -0
- package/vendor/abseil-cpp/absl/strings/numbers.h +4 -0
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +33 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +10 -6
- package/vendor/abseil-cpp/absl/strings/str_cat.h +36 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +28 -0
- package/vendor/abseil-cpp/absl/strings/str_join_test.cc +4 -4
- package/vendor/abseil-cpp/absl/strings/str_split.h +11 -6
- package/vendor/abseil-cpp/absl/strings/str_split_test.cc +13 -0
- package/vendor/abseil-cpp/absl/strings/substitute.h +2 -2
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +21 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +13 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +32 -2
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +17 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +80 -0
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/time/clock.h +3 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.cc +71 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.h +93 -0
- package/vendor/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
- package/vendor/abseil-cpp/absl/time/format.cc +3 -10
- package/vendor/abseil-cpp/absl/time/format_test.cc +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +90 -89
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +80 -5
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +1 -2
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +3 -3
- package/vendor/abseil-cpp/absl/time/simulated_clock.cc +225 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock.h +109 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +116 -0
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +100 -0
- package/vendor/abseil-cpp/absl/types/any.h +26 -4
- package/vendor/abseil-cpp/absl/types/any_span.h +1067 -0
- package/vendor/abseil-cpp/absl/types/any_span_benchmark.cc +258 -0
- package/vendor/abseil-cpp/absl/types/any_span_test.cc +1210 -0
- package/vendor/abseil-cpp/absl/types/compare.h +4 -4
- package/vendor/abseil-cpp/absl/types/internal/any_span.h +477 -0
- package/vendor/abseil-cpp/absl/types/internal/span.h +5 -6
- package/vendor/abseil-cpp/absl/types/optional.h +30 -3
- package/vendor/abseil-cpp/absl/types/optional_ref.h +295 -0
- package/vendor/abseil-cpp/absl/types/optional_ref_test.cc +370 -0
- package/vendor/abseil-cpp/absl/types/source_location.cc +18 -0
- package/vendor/abseil-cpp/absl/types/source_location.h +172 -0
- package/vendor/abseil-cpp/absl/types/source_location_test.cc +139 -0
- package/vendor/abseil-cpp/absl/types/span.h +19 -23
- package/vendor/abseil-cpp/absl/types/variant.h +75 -18
- package/vendor/abseil-cpp/absl/types/variant_test.cc +23 -23
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/utility/utility.h +99 -16
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -0
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +13 -6
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +12 -5
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +9 -2
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +10 -3
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +8 -2
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -3
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +2 -2
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -1
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
- package/AGENTS.md +0 -131
- package/ARCHITECTURE.md +0 -152
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
|
@@ -52,6 +52,8 @@
|
|
|
52
52
|
|
|
53
53
|
#include "absl/algorithm/algorithm.h"
|
|
54
54
|
#include "absl/base/config.h"
|
|
55
|
+
#include "absl/base/internal/hardening.h"
|
|
56
|
+
#include "absl/base/internal/iterator_traits.h"
|
|
55
57
|
#include "absl/base/macros.h"
|
|
56
58
|
#include "absl/meta/type_traits.h"
|
|
57
59
|
|
|
@@ -106,6 +108,42 @@ ABSL_INTERNAL_CONSTEXPR_SINCE_CXX17 ContainerIter<C> c_end(C& c) {
|
|
|
106
108
|
return end(c);
|
|
107
109
|
}
|
|
108
110
|
|
|
111
|
+
// Helper to check that the `OutputRange` has enough space.
|
|
112
|
+
// Only performs the check if the iterators are ForwardIterators or better.
|
|
113
|
+
template <typename InputSequence, typename Size, typename OutputRange>
|
|
114
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX17 void AssertCopyNSize(InputSequence& input,
|
|
115
|
+
Size n,
|
|
116
|
+
OutputRange& output) {
|
|
117
|
+
using InputIter = ContainerIter<InputSequence>;
|
|
118
|
+
using OutputIter = ContainerIter<OutputRange>;
|
|
119
|
+
|
|
120
|
+
if constexpr (base_internal::IsAtLeastForwardIterator<InputIter>::value) {
|
|
121
|
+
base_internal::HardeningAssert(
|
|
122
|
+
n <= std::distance(container_algorithm_internal::c_begin(input),
|
|
123
|
+
container_algorithm_internal::c_end(input)));
|
|
124
|
+
}
|
|
125
|
+
if constexpr (base_internal::IsAtLeastForwardIterator<OutputIter>::value) {
|
|
126
|
+
base_internal::HardeningAssert(
|
|
127
|
+
n <= std::distance(container_algorithm_internal::c_begin(output),
|
|
128
|
+
container_algorithm_internal::c_end(output)));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
template <typename InputSequence, typename OutputRange>
|
|
133
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX17 void AssertCopySize(InputSequence& input,
|
|
134
|
+
OutputRange& output) {
|
|
135
|
+
using InputIter = ContainerIter<InputSequence>;
|
|
136
|
+
using OutputIter = ContainerIter<OutputRange>;
|
|
137
|
+
if constexpr (base_internal::IsAtLeastForwardIterator<InputIter>::value &&
|
|
138
|
+
base_internal::IsAtLeastForwardIterator<OutputIter>::value) {
|
|
139
|
+
base_internal::HardeningAssert(
|
|
140
|
+
std::distance(container_algorithm_internal::c_begin(input),
|
|
141
|
+
container_algorithm_internal::c_end(input)) <=
|
|
142
|
+
std::distance(container_algorithm_internal::c_begin(output),
|
|
143
|
+
container_algorithm_internal::c_end(output)));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
109
147
|
template <typename T>
|
|
110
148
|
struct IsUnorderedContainer : std::false_type {};
|
|
111
149
|
|
|
@@ -117,6 +155,27 @@ template <class Key, class Hash, class KeyEqual, class Allocator>
|
|
|
117
155
|
struct IsUnorderedContainer<std::unordered_set<Key, Hash, KeyEqual, Allocator>>
|
|
118
156
|
: std::true_type {};
|
|
119
157
|
|
|
158
|
+
template <typename T, typename = void>
|
|
159
|
+
struct HasBeginEnd : std::false_type {};
|
|
160
|
+
|
|
161
|
+
template <typename T>
|
|
162
|
+
struct HasBeginEnd<T, std::void_t<decltype(container_algorithm_internal::begin(
|
|
163
|
+
std::declval<T (*)()>()())),
|
|
164
|
+
decltype(container_algorithm_internal::end(
|
|
165
|
+
std::declval<T (*)()>()()))>>
|
|
166
|
+
: std::true_type {};
|
|
167
|
+
|
|
168
|
+
// We don't support multidimensional arrays yet
|
|
169
|
+
template <class T>
|
|
170
|
+
using IsMultidimensionalArray = std::is_array<std::remove_extent_t<T>>;
|
|
171
|
+
|
|
172
|
+
template <typename Iter, typename = void>
|
|
173
|
+
struct IsIterator : std::false_type {};
|
|
174
|
+
|
|
175
|
+
template <typename Iter>
|
|
176
|
+
struct IsIterator<
|
|
177
|
+
Iter, std::void_t<typename std::iterator_traits<Iter>::iterator_category>>
|
|
178
|
+
: std::true_type {};
|
|
120
179
|
} // namespace container_algorithm_internal
|
|
121
180
|
|
|
122
181
|
// PUBLIC API
|
|
@@ -197,8 +256,8 @@ ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 bool c_none_of(const C& c, Pred&& pred) {
|
|
|
197
256
|
// Container-based version of the <algorithm> `std::for_each()` function to
|
|
198
257
|
// apply a function to a container's elements.
|
|
199
258
|
template <typename C, typename Function>
|
|
200
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<Function> c_for_each(
|
|
201
|
-
|
|
259
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 std::decay_t<Function> c_for_each(
|
|
260
|
+
C&& c, Function&& f) {
|
|
202
261
|
return std::for_each(container_algorithm_internal::c_begin(c),
|
|
203
262
|
container_algorithm_internal::c_end(c),
|
|
204
263
|
std::forward<Function>(f));
|
|
@@ -521,10 +580,41 @@ ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
|
521
580
|
// Container-based version of the <algorithm> `std::copy()` function to copy a
|
|
522
581
|
// container's elements into an iterator.
|
|
523
582
|
template <typename InputSequence, typename OutputIterator>
|
|
524
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
525
|
-
|
|
583
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
584
|
+
std::enable_if_t<container_algorithm_internal::IsIterator<
|
|
585
|
+
absl::remove_cvref_t<OutputIterator>>::value &&
|
|
586
|
+
!container_algorithm_internal::IsMultidimensionalArray<
|
|
587
|
+
InputSequence>::value,
|
|
588
|
+
std::decay_t<OutputIterator>>
|
|
589
|
+
c_copy(const InputSequence& input, OutputIterator&& output) {
|
|
526
590
|
return std::copy(container_algorithm_internal::c_begin(input),
|
|
527
|
-
container_algorithm_internal::c_end(input),
|
|
591
|
+
container_algorithm_internal::c_end(input),
|
|
592
|
+
std::forward<OutputIterator>(output));
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
// Copies elements from `input` to `output`. `absl::c_copy(input, output)` is
|
|
596
|
+
// equivalent to `std::copy(std::begin(input), std::end(input),
|
|
597
|
+
// std::begin(output))`.
|
|
598
|
+
//
|
|
599
|
+
// The `output` container must be large enough to hold all elements of `input`;
|
|
600
|
+
// this function does not resize `output`.
|
|
601
|
+
|
|
602
|
+
// If `std::size(input) > std::size(output)`, behavior is undefined.
|
|
603
|
+
// If `std::size(output) > std::size(input)`, only `std::size(input)` elements
|
|
604
|
+
// are copied, and `output` is not truncated.
|
|
605
|
+
template <typename InputSequence, typename OutputRange>
|
|
606
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
607
|
+
std::enable_if_t<container_algorithm_internal::HasBeginEnd<
|
|
608
|
+
std::add_lvalue_reference_t<OutputRange>>::value &&
|
|
609
|
+
!container_algorithm_internal::IsMultidimensionalArray<
|
|
610
|
+
std::remove_reference_t<OutputRange>>::value &&
|
|
611
|
+
!container_algorithm_internal::IsMultidimensionalArray<
|
|
612
|
+
InputSequence>::value,
|
|
613
|
+
void>
|
|
614
|
+
c_copy(const InputSequence& input, OutputRange&& output) {
|
|
615
|
+
container_algorithm_internal::AssertCopySize(input, output);
|
|
616
|
+
absl::c_copy(input, container_algorithm_internal::c_begin(
|
|
617
|
+
std::forward<OutputRange>(output)));
|
|
528
618
|
}
|
|
529
619
|
|
|
530
620
|
// c_copy_n()
|
|
@@ -532,9 +622,40 @@ c_copy(const InputSequence& input, OutputIterator output) {
|
|
|
532
622
|
// Container-based version of the <algorithm> `std::copy_n()` function to copy a
|
|
533
623
|
// container's first N elements into an iterator.
|
|
534
624
|
template <typename C, typename Size, typename OutputIterator>
|
|
535
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
536
|
-
|
|
537
|
-
|
|
625
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 std::enable_if_t<
|
|
626
|
+
container_algorithm_internal::IsIterator<
|
|
627
|
+
absl::remove_cvref_t<OutputIterator>>::value &&
|
|
628
|
+
!container_algorithm_internal::IsMultidimensionalArray<C>::value,
|
|
629
|
+
std::decay_t<OutputIterator>>
|
|
630
|
+
c_copy_n(const C& input, Size n, OutputIterator&& output) {
|
|
631
|
+
return std::copy_n(container_algorithm_internal::c_begin(input), n,
|
|
632
|
+
std::forward<OutputIterator>(output));
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
// Copies the first `n` elements from `input` to `output`.
|
|
636
|
+
// `absl::c_copy_n(input, n, output)` is equivalent to
|
|
637
|
+
// `std::copy_n(std::begin(input), n, std::begin(output))`.
|
|
638
|
+
//
|
|
639
|
+
// The `output` container must be large enough to hold N elements; this function
|
|
640
|
+
// does not resize `output`.
|
|
641
|
+
//
|
|
642
|
+
// If `n > std::size(output)` or `n > std::size(input)`, behavior is
|
|
643
|
+
// undefined.
|
|
644
|
+
// If `std::size(output) > n`, only `n` elements are copied, and `output` is not
|
|
645
|
+
// truncated.
|
|
646
|
+
template <typename C, typename Size, typename OutputRange>
|
|
647
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 std::enable_if_t<
|
|
648
|
+
container_algorithm_internal::HasBeginEnd<
|
|
649
|
+
std::add_lvalue_reference_t<OutputRange>>::value &&
|
|
650
|
+
!container_algorithm_internal::IsMultidimensionalArray<
|
|
651
|
+
std::remove_reference_t<OutputRange>>::value &&
|
|
652
|
+
!container_algorithm_internal::IsMultidimensionalArray<C>::value,
|
|
653
|
+
void>
|
|
654
|
+
c_copy_n(const C& input, Size n, OutputRange&& output) {
|
|
655
|
+
container_algorithm_internal::AssertCopyNSize(input, n, output);
|
|
656
|
+
absl::c_copy_n(
|
|
657
|
+
input, n,
|
|
658
|
+
container_algorithm_internal::c_begin(std::forward<OutputRange>(output)));
|
|
538
659
|
}
|
|
539
660
|
|
|
540
661
|
// c_copy_if()
|
|
@@ -565,10 +686,36 @@ c_copy_backward(const C& src, BidirectionalIterator dest) {
|
|
|
565
686
|
// Container-based version of the <algorithm> `std::move()` function to move
|
|
566
687
|
// a container's elements into an iterator.
|
|
567
688
|
template <typename C, typename OutputIterator>
|
|
568
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
569
|
-
|
|
689
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
690
|
+
std::enable_if_t<container_algorithm_internal::IsIterator<
|
|
691
|
+
absl::remove_cvref_t<OutputIterator>>::value &&
|
|
692
|
+
!container_algorithm_internal::IsMultidimensionalArray<
|
|
693
|
+
std::remove_reference_t<C>>::value,
|
|
694
|
+
std::decay_t<OutputIterator>>
|
|
695
|
+
c_move(C&& src, OutputIterator&& dest) {
|
|
570
696
|
return std::move(container_algorithm_internal::c_begin(src),
|
|
571
|
-
container_algorithm_internal::c_end(src),
|
|
697
|
+
container_algorithm_internal::c_end(src),
|
|
698
|
+
std::forward<OutputIterator>(dest));
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
// Moves elements from `src` to `dest`. `absl::c_move(src, dest)` is
|
|
702
|
+
// equivalent to `std::move(std::begin(src), std::end(src), std::begin(dest))`.
|
|
703
|
+
//
|
|
704
|
+
// The `dest` container must be large enough to hold all elements of `src`;
|
|
705
|
+
// this function does not resize `dest`.
|
|
706
|
+
template <typename C, typename OutputRange>
|
|
707
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20
|
|
708
|
+
std::enable_if_t<container_algorithm_internal::HasBeginEnd<
|
|
709
|
+
std::add_lvalue_reference_t<OutputRange>>::value &&
|
|
710
|
+
!container_algorithm_internal::IsMultidimensionalArray<
|
|
711
|
+
std::remove_reference_t<OutputRange>>::value &&
|
|
712
|
+
!container_algorithm_internal::IsMultidimensionalArray<
|
|
713
|
+
std::remove_reference_t<C>>::value,
|
|
714
|
+
void>
|
|
715
|
+
c_move(C&& src, OutputRange&& dest) {
|
|
716
|
+
container_algorithm_internal::AssertCopySize(src, dest);
|
|
717
|
+
absl::c_move(std::forward<C>(src), container_algorithm_internal::c_begin(
|
|
718
|
+
std::forward<OutputRange>(dest)));
|
|
572
719
|
}
|
|
573
720
|
|
|
574
721
|
// c_move_backward()
|
|
@@ -1758,10 +1905,10 @@ ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 void c_iota(Sequence& sequence,
|
|
|
1758
1905
|
// accumulation by value.
|
|
1759
1906
|
//
|
|
1760
1907
|
// Note: Due to a language technicality this function has return type
|
|
1761
|
-
//
|
|
1908
|
+
// std::decay_t<T>. As a user of this function you can casually read
|
|
1762
1909
|
// this as "returns T by value" and assume it does the right thing.
|
|
1763
1910
|
template <typename Sequence, typename T>
|
|
1764
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<T> c_accumulate(
|
|
1911
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 std::decay_t<T> c_accumulate(
|
|
1765
1912
|
const Sequence& sequence, T&& init) {
|
|
1766
1913
|
return std::accumulate(container_algorithm_internal::c_begin(sequence),
|
|
1767
1914
|
container_algorithm_internal::c_end(sequence),
|
|
@@ -1771,7 +1918,7 @@ ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<T> c_accumulate(
|
|
|
1771
1918
|
// Overload of c_accumulate() for using a binary operations other than
|
|
1772
1919
|
// addition for computing the accumulation.
|
|
1773
1920
|
template <typename Sequence, typename T, typename BinaryOp>
|
|
1774
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<T> c_accumulate(
|
|
1921
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 std::decay_t<T> c_accumulate(
|
|
1775
1922
|
const Sequence& sequence, T&& init, BinaryOp&& binary_op) {
|
|
1776
1923
|
return std::accumulate(container_algorithm_internal::c_begin(sequence),
|
|
1777
1924
|
container_algorithm_internal::c_end(sequence),
|
|
@@ -1785,10 +1932,10 @@ ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<T> c_accumulate(
|
|
|
1785
1932
|
// to compute the cumulative inner product of container element pairs.
|
|
1786
1933
|
//
|
|
1787
1934
|
// Note: Due to a language technicality this function has return type
|
|
1788
|
-
//
|
|
1935
|
+
// std::decay_t<T>. As a user of this function you can casually read
|
|
1789
1936
|
// this as "returns T by value" and assume it does the right thing.
|
|
1790
1937
|
template <typename Sequence1, typename Sequence2, typename T>
|
|
1791
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<T> c_inner_product(
|
|
1938
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 std::decay_t<T> c_inner_product(
|
|
1792
1939
|
const Sequence1& factors1, const Sequence2& factors2, T&& sum) {
|
|
1793
1940
|
return std::inner_product(container_algorithm_internal::c_begin(factors1),
|
|
1794
1941
|
container_algorithm_internal::c_end(factors1),
|
|
@@ -1801,7 +1948,7 @@ ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<T> c_inner_product(
|
|
|
1801
1948
|
// the product between the two container's element pair).
|
|
1802
1949
|
template <typename Sequence1, typename Sequence2, typename T,
|
|
1803
1950
|
typename BinaryOp1, typename BinaryOp2>
|
|
1804
|
-
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 decay_t<T> c_inner_product(
|
|
1951
|
+
ABSL_INTERNAL_CONSTEXPR_SINCE_CXX20 std::decay_t<T> c_inner_product(
|
|
1805
1952
|
const Sequence1& factors1, const Sequence2& factors2, T&& sum,
|
|
1806
1953
|
BinaryOp1&& op1, BinaryOp2&& op2) {
|
|
1807
1954
|
return std::inner_product(container_algorithm_internal::c_begin(factors1),
|