re2 1.22.2 → 1.23.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/README.md +60 -4
- package/binding.gyp +5 -1
- package/lib/addon.cc +4 -0
- package/lib/new.cc +1 -246
- package/lib/pattern.cc +252 -0
- package/lib/pattern.h +10 -0
- package/lib/set.cc +777 -0
- package/lib/wrapped_re2_set.h +42 -0
- package/package.json +21 -9
- package/re2.d.ts +46 -9
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
- package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
- package/vendor/abseil-cpp/CMake/README.md +2 -2
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/MODULE.bazel +6 -9
- package/vendor/abseil-cpp/README.md +6 -8
- package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
- package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
- package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
- package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
- package/vendor/abseil-cpp/absl/base/config.h +22 -129
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
- package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
- package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
- package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
- package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
- package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
- package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
- package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
- package/vendor/abseil-cpp/absl/base/options.h +3 -80
- package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
- package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
- package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
- package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
- package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
- package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
- package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
- package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
- package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
- package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
- package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
- package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
- package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
- package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
- package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
- package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
- package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
- package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
- package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
- package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
- package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
- package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
- package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
- package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
- package/vendor/abseil-cpp/absl/log/check.h +2 -1
- package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
- package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
- package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
- package/vendor/abseil-cpp/absl/log/globals.h +4 -5
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
- package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
- package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
- package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
- package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
- package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
- package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
- package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
- package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
- package/vendor/abseil-cpp/absl/log/log.h +48 -35
- package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
- package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
- package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
- package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
- package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
- package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
- package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
- package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
- package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
- package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
- package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
- package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
- package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
- package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
- package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
- package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
- package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
- package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
- package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
- package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
- package/vendor/abseil-cpp/absl/random/random.h +88 -53
- package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
- package/vendor/abseil-cpp/absl/status/status.cc +4 -8
- package/vendor/abseil-cpp/absl/status/status.h +8 -8
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
- package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
- package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
- package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
- package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
- package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
- package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
- package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
- package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
- package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
- package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
- package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
- package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
- package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
- package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
- package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
- package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
- package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
- package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
- package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
- package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
- package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
- package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
- package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
- package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
- package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
- package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
- package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
- package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
- package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
- package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
- package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
- package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
- package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
- package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
- package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
- package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
- package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
- package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
- package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
- package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
- package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
- package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
- package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
- package/vendor/abseil-cpp/absl/time/time.h +24 -18
- package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
- package/vendor/abseil-cpp/absl/types/any.h +9 -484
- package/vendor/abseil-cpp/absl/types/optional.h +7 -747
- package/vendor/abseil-cpp/absl/types/span.h +46 -19
- package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
- package/vendor/abseil-cpp/absl/types/variant.h +5 -784
- package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
- package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
- package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
- package/vendor/re2/.bazelrc +4 -4
- package/vendor/re2/.bcr/metadata.template.json +16 -0
- package/vendor/re2/.bcr/presubmit.yml +57 -0
- package/vendor/re2/.bcr/source.template.json +5 -0
- package/vendor/re2/.github/bazel.sh +1 -7
- package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
- package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
- package/vendor/re2/.github/workflows/ci.yml +5 -6
- package/vendor/re2/.github/workflows/pages.yml +3 -3
- package/vendor/re2/.github/workflows/python.yml +29 -24
- package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
- package/vendor/re2/.github/workflows/release.yml +15 -4
- package/vendor/re2/BUILD.bazel +25 -0
- package/vendor/re2/CMakeLists.txt +100 -85
- package/vendor/re2/CONTRIBUTING.md +0 -1
- package/vendor/re2/MODULE.bazel +10 -10
- package/vendor/re2/Makefile +1 -1
- package/vendor/re2/README.md +259 -0
- package/vendor/re2/python/BUILD.bazel +8 -0
- package/vendor/re2/python/re2.py +1 -1
- package/vendor/re2/python/re2_test.py +6 -0
- package/vendor/re2/python/setup.py +3 -3
- package/vendor/re2/re2/bitmap256.cc +3 -4
- package/vendor/re2/re2/bitstate.cc +15 -10
- package/vendor/re2/re2/dfa.cc +1 -2
- package/vendor/re2/re2/parse.cc +3 -4
- package/vendor/re2/re2/prog.cc +1 -2
- package/vendor/re2/re2/prog.h +1 -0
- package/vendor/re2/re2/re2.cc +5 -0
- package/vendor/re2/re2/re2.h +9 -9
- package/vendor/re2/re2/set.cc +6 -0
- package/vendor/re2/re2/set.h +5 -0
- package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
- package/vendor/re2/re2/testing/re2_test.cc +8 -0
- package/vendor/re2/re2/testing/set_test.cc +5 -0
- package/vendor/re2/re2/walker-inl.h +1 -1
- package/vendor/abseil-cpp/WORKSPACE +0 -76
- package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
- package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
- package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
- package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
- package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
- package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
- package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
- package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
- package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
- package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
- package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
- package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
- package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
- package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
- package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
- package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
- package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
- package/vendor/re2/.github/workflows/pr.yml +0 -34
- package/vendor/re2/README +0 -47
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright 2019 The Abseil Authors.
|
|
3
|
-
#
|
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
# you may not use this file except in compliance with the License.
|
|
6
|
-
# You may obtain a copy of the License at
|
|
7
|
-
#
|
|
8
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
#
|
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
# See the License for the specific language governing permissions and
|
|
14
|
-
# limitations under the License.
|
|
15
|
-
#
|
|
16
|
-
|
|
17
|
-
workspace(name = "abseil-cpp")
|
|
18
|
-
|
|
19
|
-
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
20
|
-
|
|
21
|
-
# GoogleTest/GoogleMock framework. Used by most unit-tests.
|
|
22
|
-
http_archive(
|
|
23
|
-
name = "googletest",
|
|
24
|
-
sha256 = "7b42b4d6ed48810c5362c265a17faebe90dc2373c885e5216439d37927f02926",
|
|
25
|
-
strip_prefix = "googletest-1.15.2",
|
|
26
|
-
# Keep this URL in sync with the version in ci/cmake_common.sh and
|
|
27
|
-
# ci/windows_msvc_cmake.bat.
|
|
28
|
-
urls = ["https://github.com/google/googletest/releases/download/v1.15.2/googletest-1.15.2.tar.gz"],
|
|
29
|
-
# Now that Abseil is using the canonical names from the Bazel Central Registry, map
|
|
30
|
-
# GoogleTest's old names to the new canonical names.
|
|
31
|
-
repo_mapping = {
|
|
32
|
-
"@com_google_absl": "@",
|
|
33
|
-
"@com_googlesource_code_re2": "@re2",
|
|
34
|
-
},
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
# RE2 (the regular expression library used by GoogleTest)
|
|
38
|
-
http_archive(
|
|
39
|
-
name = "re2",
|
|
40
|
-
sha256 = "eb2df807c781601c14a260a507a5bb4509be1ee626024cb45acbd57cb9d4032b",
|
|
41
|
-
strip_prefix = "re2-2024-07-02",
|
|
42
|
-
urls = ["https://github.com/google/re2/releases/download/2024-07-02/re2-2024-07-02.tar.gz"],
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
# Google benchmark.
|
|
46
|
-
http_archive(
|
|
47
|
-
name = "google_benchmark",
|
|
48
|
-
sha256 = "d26789a2b46d8808a48a4556ee58ccc7c497fcd4c0af9b90197674a81e04798a",
|
|
49
|
-
strip_prefix = "benchmark-1.8.5",
|
|
50
|
-
urls = ["https://github.com/google/benchmark/archive/refs/tags/v1.8.5.tar.gz"],
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
# Bazel Skylib.
|
|
54
|
-
http_archive(
|
|
55
|
-
name = "bazel_skylib",
|
|
56
|
-
sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
|
|
57
|
-
urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz"],
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
# C++ rules for Bazel
|
|
61
|
-
http_archive(
|
|
62
|
-
name = "rules_cc",
|
|
63
|
-
urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.1.0/rules_cc-0.1.0.tar.gz"],
|
|
64
|
-
sha256 = "4b12149a041ddfb8306a8fd0e904e39d673552ce82e4296e96fac9cbf0780e59",
|
|
65
|
-
strip_prefix = "rules_cc-0.1.0",
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
# Bazel platform rules.
|
|
69
|
-
http_archive(
|
|
70
|
-
name = "platforms",
|
|
71
|
-
urls = [
|
|
72
|
-
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.10/platforms-0.0.10.tar.gz",
|
|
73
|
-
"https://github.com/bazelbuild/platforms/releases/download/0.0.10/platforms-0.0.10.tar.gz",
|
|
74
|
-
],
|
|
75
|
-
sha256 = "218efe8ee736d26a3572663b374a253c012b716d8af0c07e842e82f238a0a7ee",
|
|
76
|
-
)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Copyright 2024 The Abseil Authors.
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
# https://bazel.build/external/migration#workspace.bzlmod
|
|
16
|
-
#
|
|
17
|
-
# This file is intentionally empty. When bzlmod is enabled and this
|
|
18
|
-
# file exists, the contents of WORKSPACE is ignored. This prevents
|
|
19
|
-
# bzlmod builds from unintentionally depending on the WORKSPACE file.
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 The Abseil Authors.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#include <type_traits>
|
|
16
|
-
|
|
17
|
-
#include "absl/base/internal/inline_variable.h"
|
|
18
|
-
#include "absl/base/internal/inline_variable_testing.h"
|
|
19
|
-
|
|
20
|
-
#include "gtest/gtest.h"
|
|
21
|
-
|
|
22
|
-
namespace absl {
|
|
23
|
-
ABSL_NAMESPACE_BEGIN
|
|
24
|
-
namespace inline_variable_testing_internal {
|
|
25
|
-
namespace {
|
|
26
|
-
|
|
27
|
-
TEST(InlineVariableTest, Constexpr) {
|
|
28
|
-
static_assert(inline_variable_foo.value == 5, "");
|
|
29
|
-
static_assert(other_inline_variable_foo.value == 5, "");
|
|
30
|
-
static_assert(inline_variable_int == 5, "");
|
|
31
|
-
static_assert(other_inline_variable_int == 5, "");
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
TEST(InlineVariableTest, DefaultConstructedIdentityEquality) {
|
|
35
|
-
EXPECT_EQ(get_foo_a().value, 5);
|
|
36
|
-
EXPECT_EQ(get_foo_b().value, 5);
|
|
37
|
-
EXPECT_EQ(&get_foo_a(), &get_foo_b());
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
TEST(InlineVariableTest, DefaultConstructedIdentityInequality) {
|
|
41
|
-
EXPECT_NE(&inline_variable_foo, &other_inline_variable_foo);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
TEST(InlineVariableTest, InitializedIdentityEquality) {
|
|
45
|
-
EXPECT_EQ(get_int_a(), 5);
|
|
46
|
-
EXPECT_EQ(get_int_b(), 5);
|
|
47
|
-
EXPECT_EQ(&get_int_a(), &get_int_b());
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
TEST(InlineVariableTest, InitializedIdentityInequality) {
|
|
51
|
-
EXPECT_NE(&inline_variable_int, &other_inline_variable_int);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
TEST(InlineVariableTest, FunPtrType) {
|
|
55
|
-
static_assert(
|
|
56
|
-
std::is_same<void(*)(),
|
|
57
|
-
std::decay<decltype(inline_variable_fun_ptr)>::type>::value,
|
|
58
|
-
"");
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
} // namespace
|
|
62
|
-
} // namespace inline_variable_testing_internal
|
|
63
|
-
ABSL_NAMESPACE_END
|
|
64
|
-
} // namespace absl
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 The Abseil Authors.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#ifndef ABSL_BASE_INTERNAL_INLINE_VARIABLE_H_
|
|
16
|
-
#define ABSL_BASE_INTERNAL_INLINE_VARIABLE_H_
|
|
17
|
-
|
|
18
|
-
#include <type_traits>
|
|
19
|
-
|
|
20
|
-
#include "absl/base/internal/identity.h"
|
|
21
|
-
|
|
22
|
-
// File:
|
|
23
|
-
// This file define a macro that allows the creation of or emulation of C++17
|
|
24
|
-
// inline variables based on whether or not the feature is supported.
|
|
25
|
-
|
|
26
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
27
|
-
// Macro: ABSL_INTERNAL_INLINE_CONSTEXPR(type, name, init)
|
|
28
|
-
//
|
|
29
|
-
// Description:
|
|
30
|
-
// Expands to the equivalent of an inline constexpr instance of the specified
|
|
31
|
-
// `type` and `name`, initialized to the value `init`. If the compiler being
|
|
32
|
-
// used is detected as supporting actual inline variables as a language
|
|
33
|
-
// feature, then the macro expands to an actual inline variable definition.
|
|
34
|
-
//
|
|
35
|
-
// Requires:
|
|
36
|
-
// `type` is a type that is usable in an extern variable declaration.
|
|
37
|
-
//
|
|
38
|
-
// Requires: `name` is a valid identifier
|
|
39
|
-
//
|
|
40
|
-
// Requires:
|
|
41
|
-
// `init` is an expression that can be used in the following definition:
|
|
42
|
-
// constexpr type name = init;
|
|
43
|
-
//
|
|
44
|
-
// Usage:
|
|
45
|
-
//
|
|
46
|
-
// // Equivalent to: `inline constexpr size_t variant_npos = -1;`
|
|
47
|
-
// ABSL_INTERNAL_INLINE_CONSTEXPR(size_t, variant_npos, -1);
|
|
48
|
-
//
|
|
49
|
-
// Differences in implementation:
|
|
50
|
-
// For a direct, language-level inline variable, decltype(name) will be the
|
|
51
|
-
// type that was specified along with const qualification, whereas for
|
|
52
|
-
// emulated inline variables, decltype(name) may be different (in practice
|
|
53
|
-
// it will likely be a reference type).
|
|
54
|
-
////////////////////////////////////////////////////////////////////////////////
|
|
55
|
-
|
|
56
|
-
#ifdef __cpp_inline_variables
|
|
57
|
-
|
|
58
|
-
// Clang's -Wmissing-variable-declarations option erroneously warned that
|
|
59
|
-
// inline constexpr objects need to be pre-declared. This has now been fixed,
|
|
60
|
-
// but we will need to support this workaround for people building with older
|
|
61
|
-
// versions of clang.
|
|
62
|
-
//
|
|
63
|
-
// Bug: https://bugs.llvm.org/show_bug.cgi?id=35862
|
|
64
|
-
//
|
|
65
|
-
// Note:
|
|
66
|
-
// type_identity_t is used here so that the const and name are in the
|
|
67
|
-
// appropriate place for pointer types, reference types, function pointer
|
|
68
|
-
// types, etc..
|
|
69
|
-
#if defined(__clang__)
|
|
70
|
-
#define ABSL_INTERNAL_EXTERN_DECL(type, name) \
|
|
71
|
-
extern const ::absl::internal::type_identity_t<type> name;
|
|
72
|
-
#else // Otherwise, just define the macro to do nothing.
|
|
73
|
-
#define ABSL_INTERNAL_EXTERN_DECL(type, name)
|
|
74
|
-
#endif // defined(__clang__)
|
|
75
|
-
|
|
76
|
-
// See above comment at top of file for details.
|
|
77
|
-
#define ABSL_INTERNAL_INLINE_CONSTEXPR(type, name, init) \
|
|
78
|
-
ABSL_INTERNAL_EXTERN_DECL(type, name) \
|
|
79
|
-
inline constexpr ::absl::internal::type_identity_t<type> name = init
|
|
80
|
-
|
|
81
|
-
#else
|
|
82
|
-
|
|
83
|
-
// See above comment at top of file for details.
|
|
84
|
-
//
|
|
85
|
-
// Note:
|
|
86
|
-
// type_identity_t is used here so that the const and name are in the
|
|
87
|
-
// appropriate place for pointer types, reference types, function pointer
|
|
88
|
-
// types, etc..
|
|
89
|
-
#define ABSL_INTERNAL_INLINE_CONSTEXPR(var_type, name, init) \
|
|
90
|
-
template <class /*AbslInternalDummy*/ = void> \
|
|
91
|
-
struct AbslInternalInlineVariableHolder##name { \
|
|
92
|
-
static constexpr ::absl::internal::type_identity_t<var_type> kInstance = \
|
|
93
|
-
init; \
|
|
94
|
-
}; \
|
|
95
|
-
\
|
|
96
|
-
template <class AbslInternalDummy> \
|
|
97
|
-
constexpr ::absl::internal::type_identity_t<var_type> \
|
|
98
|
-
AbslInternalInlineVariableHolder##name<AbslInternalDummy>::kInstance; \
|
|
99
|
-
\
|
|
100
|
-
static constexpr const ::absl::internal::type_identity_t<var_type>& \
|
|
101
|
-
name = /* NOLINT */ \
|
|
102
|
-
AbslInternalInlineVariableHolder##name<>::kInstance; \
|
|
103
|
-
static_assert(sizeof(void (*)(decltype(name))) != 0, \
|
|
104
|
-
"Silence unused variable warnings.")
|
|
105
|
-
|
|
106
|
-
#endif // __cpp_inline_variables
|
|
107
|
-
|
|
108
|
-
#endif // ABSL_BASE_INTERNAL_INLINE_VARIABLE_H_
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 The Abseil Authors.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#ifndef ABSL_BASE_INTERNAL_INLINE_VARIABLE_TESTING_H_
|
|
16
|
-
#define ABSL_BASE_INTERNAL_INLINE_VARIABLE_TESTING_H_
|
|
17
|
-
|
|
18
|
-
#include "absl/base/internal/inline_variable.h"
|
|
19
|
-
|
|
20
|
-
namespace absl {
|
|
21
|
-
ABSL_NAMESPACE_BEGIN
|
|
22
|
-
namespace inline_variable_testing_internal {
|
|
23
|
-
|
|
24
|
-
struct Foo {
|
|
25
|
-
int value = 5;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
ABSL_INTERNAL_INLINE_CONSTEXPR(Foo, inline_variable_foo, {});
|
|
29
|
-
ABSL_INTERNAL_INLINE_CONSTEXPR(Foo, other_inline_variable_foo, {});
|
|
30
|
-
|
|
31
|
-
ABSL_INTERNAL_INLINE_CONSTEXPR(int, inline_variable_int, 5);
|
|
32
|
-
ABSL_INTERNAL_INLINE_CONSTEXPR(int, other_inline_variable_int, 5);
|
|
33
|
-
|
|
34
|
-
ABSL_INTERNAL_INLINE_CONSTEXPR(void(*)(), inline_variable_fun_ptr, nullptr);
|
|
35
|
-
|
|
36
|
-
const Foo& get_foo_a();
|
|
37
|
-
const Foo& get_foo_b();
|
|
38
|
-
|
|
39
|
-
const int& get_int_a();
|
|
40
|
-
const int& get_int_b();
|
|
41
|
-
|
|
42
|
-
} // namespace inline_variable_testing_internal
|
|
43
|
-
ABSL_NAMESPACE_END
|
|
44
|
-
} // namespace absl
|
|
45
|
-
|
|
46
|
-
#endif // ABSL_BASE_INTERNAL_INLINE_VARIABLE_TESTING_H_
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 The Abseil Authors.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
//
|
|
15
|
-
// absl::base_internal::invoke(f, args...) is an implementation of
|
|
16
|
-
// INVOKE(f, args...) from section [func.require] of the C++ standard.
|
|
17
|
-
// When compiled as C++17 and later versions, it is implemented as an alias of
|
|
18
|
-
// std::invoke.
|
|
19
|
-
//
|
|
20
|
-
// [func.require]
|
|
21
|
-
// Define INVOKE (f, t1, t2, ..., tN) as follows:
|
|
22
|
-
// 1. (t1.*f)(t2, ..., tN) when f is a pointer to a member function of a class T
|
|
23
|
-
// and t1 is an object of type T or a reference to an object of type T or a
|
|
24
|
-
// reference to an object of a type derived from T;
|
|
25
|
-
// 2. ((*t1).*f)(t2, ..., tN) when f is a pointer to a member function of a
|
|
26
|
-
// class T and t1 is not one of the types described in the previous item;
|
|
27
|
-
// 3. t1.*f when N == 1 and f is a pointer to member data of a class T and t1 is
|
|
28
|
-
// an object of type T or a reference to an object of type T or a reference
|
|
29
|
-
// to an object of a type derived from T;
|
|
30
|
-
// 4. (*t1).*f when N == 1 and f is a pointer to member data of a class T and t1
|
|
31
|
-
// is not one of the types described in the previous item;
|
|
32
|
-
// 5. f(t1, t2, ..., tN) in all other cases.
|
|
33
|
-
//
|
|
34
|
-
// The implementation is SFINAE-friendly: substitution failure within invoke()
|
|
35
|
-
// isn't an error.
|
|
36
|
-
|
|
37
|
-
#ifndef ABSL_BASE_INTERNAL_INVOKE_H_
|
|
38
|
-
#define ABSL_BASE_INTERNAL_INVOKE_H_
|
|
39
|
-
|
|
40
|
-
#include "absl/base/config.h"
|
|
41
|
-
|
|
42
|
-
#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
|
43
|
-
|
|
44
|
-
#include <functional>
|
|
45
|
-
|
|
46
|
-
namespace absl {
|
|
47
|
-
ABSL_NAMESPACE_BEGIN
|
|
48
|
-
namespace base_internal {
|
|
49
|
-
|
|
50
|
-
using std::invoke;
|
|
51
|
-
using std::invoke_result_t;
|
|
52
|
-
using std::is_invocable_r;
|
|
53
|
-
|
|
54
|
-
} // namespace base_internal
|
|
55
|
-
ABSL_NAMESPACE_END
|
|
56
|
-
} // namespace absl
|
|
57
|
-
|
|
58
|
-
#else // ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
|
59
|
-
|
|
60
|
-
#include <algorithm>
|
|
61
|
-
#include <type_traits>
|
|
62
|
-
#include <utility>
|
|
63
|
-
|
|
64
|
-
#include "absl/meta/type_traits.h"
|
|
65
|
-
|
|
66
|
-
// The following code is internal implementation detail. See the comment at the
|
|
67
|
-
// top of this file for the API documentation.
|
|
68
|
-
|
|
69
|
-
namespace absl {
|
|
70
|
-
ABSL_NAMESPACE_BEGIN
|
|
71
|
-
namespace base_internal {
|
|
72
|
-
|
|
73
|
-
// The five classes below each implement one of the clauses from the definition
|
|
74
|
-
// of INVOKE. The inner class template Accept<F, Args...> checks whether the
|
|
75
|
-
// clause is applicable; static function template Invoke(f, args...) does the
|
|
76
|
-
// invocation.
|
|
77
|
-
//
|
|
78
|
-
// By separating the clause selection logic from invocation we make sure that
|
|
79
|
-
// Invoke() does exactly what the standard says.
|
|
80
|
-
|
|
81
|
-
template <typename Derived>
|
|
82
|
-
struct StrippedAccept {
|
|
83
|
-
template <typename... Args>
|
|
84
|
-
struct Accept : Derived::template AcceptImpl<typename std::remove_cv<
|
|
85
|
-
typename std::remove_reference<Args>::type>::type...> {};
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// (t1.*f)(t2, ..., tN) when f is a pointer to a member function of a class T
|
|
89
|
-
// and t1 is an object of type T or a reference to an object of type T or a
|
|
90
|
-
// reference to an object of a type derived from T.
|
|
91
|
-
struct MemFunAndRef : StrippedAccept<MemFunAndRef> {
|
|
92
|
-
template <typename... Args>
|
|
93
|
-
struct AcceptImpl : std::false_type {};
|
|
94
|
-
|
|
95
|
-
template <typename MemFunType, typename C, typename Obj, typename... Args>
|
|
96
|
-
struct AcceptImpl<MemFunType C::*, Obj, Args...>
|
|
97
|
-
: std::integral_constant<bool, std::is_base_of<C, Obj>::value &&
|
|
98
|
-
absl::is_function<MemFunType>::value> {
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
template <typename MemFun, typename Obj, typename... Args>
|
|
102
|
-
static decltype((std::declval<Obj>().*
|
|
103
|
-
std::declval<MemFun>())(std::declval<Args>()...))
|
|
104
|
-
Invoke(MemFun&& mem_fun, Obj&& obj, Args&&... args) {
|
|
105
|
-
// Ignore bogus GCC warnings on this line.
|
|
106
|
-
// See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101436 for similar example.
|
|
107
|
-
#if ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(11, 0)
|
|
108
|
-
#pragma GCC diagnostic push
|
|
109
|
-
#pragma GCC diagnostic ignored "-Warray-bounds"
|
|
110
|
-
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
|
111
|
-
#endif
|
|
112
|
-
return (std::forward<Obj>(obj).*
|
|
113
|
-
std::forward<MemFun>(mem_fun))(std::forward<Args>(args)...);
|
|
114
|
-
#if ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(11, 0)
|
|
115
|
-
#pragma GCC diagnostic pop
|
|
116
|
-
#endif
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// ((*t1).*f)(t2, ..., tN) when f is a pointer to a member function of a
|
|
121
|
-
// class T and t1 is not one of the types described in the previous item.
|
|
122
|
-
struct MemFunAndPtr : StrippedAccept<MemFunAndPtr> {
|
|
123
|
-
template <typename... Args>
|
|
124
|
-
struct AcceptImpl : std::false_type {};
|
|
125
|
-
|
|
126
|
-
template <typename MemFunType, typename C, typename Ptr, typename... Args>
|
|
127
|
-
struct AcceptImpl<MemFunType C::*, Ptr, Args...>
|
|
128
|
-
: std::integral_constant<bool, !std::is_base_of<C, Ptr>::value &&
|
|
129
|
-
absl::is_function<MemFunType>::value> {
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
template <typename MemFun, typename Ptr, typename... Args>
|
|
133
|
-
static decltype(((*std::declval<Ptr>()).*
|
|
134
|
-
std::declval<MemFun>())(std::declval<Args>()...))
|
|
135
|
-
Invoke(MemFun&& mem_fun, Ptr&& ptr, Args&&... args) {
|
|
136
|
-
return ((*std::forward<Ptr>(ptr)).*
|
|
137
|
-
std::forward<MemFun>(mem_fun))(std::forward<Args>(args)...);
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
// t1.*f when N == 1 and f is a pointer to member data of a class T and t1 is
|
|
142
|
-
// an object of type T or a reference to an object of type T or a reference
|
|
143
|
-
// to an object of a type derived from T.
|
|
144
|
-
struct DataMemAndRef : StrippedAccept<DataMemAndRef> {
|
|
145
|
-
template <typename... Args>
|
|
146
|
-
struct AcceptImpl : std::false_type {};
|
|
147
|
-
|
|
148
|
-
template <typename R, typename C, typename Obj>
|
|
149
|
-
struct AcceptImpl<R C::*, Obj>
|
|
150
|
-
: std::integral_constant<bool, std::is_base_of<C, Obj>::value &&
|
|
151
|
-
!absl::is_function<R>::value> {};
|
|
152
|
-
|
|
153
|
-
template <typename DataMem, typename Ref>
|
|
154
|
-
static decltype(std::declval<Ref>().*std::declval<DataMem>()) Invoke(
|
|
155
|
-
DataMem&& data_mem, Ref&& ref) {
|
|
156
|
-
return std::forward<Ref>(ref).*std::forward<DataMem>(data_mem);
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
// (*t1).*f when N == 1 and f is a pointer to member data of a class T and t1
|
|
161
|
-
// is not one of the types described in the previous item.
|
|
162
|
-
struct DataMemAndPtr : StrippedAccept<DataMemAndPtr> {
|
|
163
|
-
template <typename... Args>
|
|
164
|
-
struct AcceptImpl : std::false_type {};
|
|
165
|
-
|
|
166
|
-
template <typename R, typename C, typename Ptr>
|
|
167
|
-
struct AcceptImpl<R C::*, Ptr>
|
|
168
|
-
: std::integral_constant<bool, !std::is_base_of<C, Ptr>::value &&
|
|
169
|
-
!absl::is_function<R>::value> {};
|
|
170
|
-
|
|
171
|
-
template <typename DataMem, typename Ptr>
|
|
172
|
-
static decltype((*std::declval<Ptr>()).*std::declval<DataMem>()) Invoke(
|
|
173
|
-
DataMem&& data_mem, Ptr&& ptr) {
|
|
174
|
-
return (*std::forward<Ptr>(ptr)).*std::forward<DataMem>(data_mem);
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
// f(t1, t2, ..., tN) in all other cases.
|
|
179
|
-
struct Callable {
|
|
180
|
-
// Callable doesn't have Accept because it's the last clause that gets picked
|
|
181
|
-
// when none of the previous clauses are applicable.
|
|
182
|
-
template <typename F, typename... Args>
|
|
183
|
-
static decltype(std::declval<F>()(std::declval<Args>()...)) Invoke(
|
|
184
|
-
F&& f, Args&&... args) {
|
|
185
|
-
return std::forward<F>(f)(std::forward<Args>(args)...);
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
// Resolves to the first matching clause.
|
|
190
|
-
template <typename... Args>
|
|
191
|
-
struct Invoker {
|
|
192
|
-
typedef typename std::conditional<
|
|
193
|
-
MemFunAndRef::Accept<Args...>::value, MemFunAndRef,
|
|
194
|
-
typename std::conditional<
|
|
195
|
-
MemFunAndPtr::Accept<Args...>::value, MemFunAndPtr,
|
|
196
|
-
typename std::conditional<
|
|
197
|
-
DataMemAndRef::Accept<Args...>::value, DataMemAndRef,
|
|
198
|
-
typename std::conditional<DataMemAndPtr::Accept<Args...>::value,
|
|
199
|
-
DataMemAndPtr, Callable>::type>::type>::
|
|
200
|
-
type>::type type;
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
// The result type of Invoke<F, Args...>.
|
|
204
|
-
template <typename F, typename... Args>
|
|
205
|
-
using invoke_result_t = decltype(Invoker<F, Args...>::type::Invoke(
|
|
206
|
-
std::declval<F>(), std::declval<Args>()...));
|
|
207
|
-
|
|
208
|
-
// Invoke(f, args...) is an implementation of INVOKE(f, args...) from section
|
|
209
|
-
// [func.require] of the C++ standard.
|
|
210
|
-
template <typename F, typename... Args>
|
|
211
|
-
invoke_result_t<F, Args...> invoke(F&& f, Args&&... args) {
|
|
212
|
-
return Invoker<F, Args...>::type::Invoke(std::forward<F>(f),
|
|
213
|
-
std::forward<Args>(args)...);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
template <typename AlwaysVoid, typename, typename, typename...>
|
|
217
|
-
struct IsInvocableRImpl : std::false_type {};
|
|
218
|
-
|
|
219
|
-
template <typename R, typename F, typename... Args>
|
|
220
|
-
struct IsInvocableRImpl<
|
|
221
|
-
absl::void_t<absl::base_internal::invoke_result_t<F, Args...> >, R, F,
|
|
222
|
-
Args...>
|
|
223
|
-
: std::integral_constant<
|
|
224
|
-
bool,
|
|
225
|
-
std::is_convertible<absl::base_internal::invoke_result_t<F, Args...>,
|
|
226
|
-
R>::value ||
|
|
227
|
-
std::is_void<R>::value> {};
|
|
228
|
-
|
|
229
|
-
// Type trait whose member `value` is true if invoking `F` with `Args` is valid,
|
|
230
|
-
// and either the return type is convertible to `R`, or `R` is void.
|
|
231
|
-
// C++11-compatible version of `std::is_invocable_r`.
|
|
232
|
-
template <typename R, typename F, typename... Args>
|
|
233
|
-
using is_invocable_r = IsInvocableRImpl<void, R, F, Args...>;
|
|
234
|
-
|
|
235
|
-
} // namespace base_internal
|
|
236
|
-
ABSL_NAMESPACE_END
|
|
237
|
-
} // namespace absl
|
|
238
|
-
|
|
239
|
-
#endif // ABSL_INTERNAL_CPLUSPLUS_LANG >= 201703L
|
|
240
|
-
|
|
241
|
-
#endif // ABSL_BASE_INTERNAL_INVOKE_H_
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// Copyright 2023 The Abseil Authors.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
|
|
15
|
-
#ifndef ABSL_BASE_INTERNAL_NULLABILITY_IMPL_H_
|
|
16
|
-
#define ABSL_BASE_INTERNAL_NULLABILITY_IMPL_H_
|
|
17
|
-
|
|
18
|
-
#include <memory>
|
|
19
|
-
#include <type_traits>
|
|
20
|
-
|
|
21
|
-
#include "absl/base/attributes.h"
|
|
22
|
-
#include "absl/base/config.h"
|
|
23
|
-
#include "absl/meta/type_traits.h"
|
|
24
|
-
|
|
25
|
-
namespace absl {
|
|
26
|
-
ABSL_NAMESPACE_BEGIN
|
|
27
|
-
namespace nullability_internal {
|
|
28
|
-
|
|
29
|
-
template <typename T>
|
|
30
|
-
using NullableImpl
|
|
31
|
-
#if ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
|
|
32
|
-
[[clang::annotate("Nullable")]]
|
|
33
|
-
#endif
|
|
34
|
-
// Don't add the _Nullable attribute in Objective-C compiles. Many Objective-C
|
|
35
|
-
// projects enable the `-Wnullable-to-nonnull-conversion warning`, which is
|
|
36
|
-
// liable to produce false positives.
|
|
37
|
-
#if ABSL_HAVE_FEATURE(nullability_on_classes) && !defined(__OBJC__)
|
|
38
|
-
= T _Nullable;
|
|
39
|
-
#else
|
|
40
|
-
= T;
|
|
41
|
-
#endif
|
|
42
|
-
|
|
43
|
-
template <typename T>
|
|
44
|
-
using NonnullImpl
|
|
45
|
-
#if ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
|
|
46
|
-
[[clang::annotate("Nonnull")]]
|
|
47
|
-
#endif
|
|
48
|
-
#if ABSL_HAVE_FEATURE(nullability_on_classes) && !defined(__OBJC__)
|
|
49
|
-
= T _Nonnull;
|
|
50
|
-
#else
|
|
51
|
-
= T;
|
|
52
|
-
#endif
|
|
53
|
-
|
|
54
|
-
template <typename T>
|
|
55
|
-
using NullabilityUnknownImpl
|
|
56
|
-
#if ABSL_HAVE_CPP_ATTRIBUTE(clang::annotate)
|
|
57
|
-
[[clang::annotate("Nullability_Unspecified")]]
|
|
58
|
-
#endif
|
|
59
|
-
#if ABSL_HAVE_FEATURE(nullability_on_classes) && !defined(__OBJC__)
|
|
60
|
-
= T _Null_unspecified;
|
|
61
|
-
#else
|
|
62
|
-
= T;
|
|
63
|
-
#endif
|
|
64
|
-
|
|
65
|
-
} // namespace nullability_internal
|
|
66
|
-
ABSL_NAMESPACE_END
|
|
67
|
-
} // namespace absl
|
|
68
|
-
|
|
69
|
-
#endif // ABSL_BASE_INTERNAL_NULLABILITY_IMPL_H_
|