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.
Files changed (370) hide show
  1. package/LICENSE +15 -20
  2. package/README.md +62 -4
  3. package/binding.gyp +1 -2
  4. package/lib/addon.cc +7 -3
  5. package/lib/exec.cc +4 -4
  6. package/lib/match.cc +4 -4
  7. package/lib/pattern.cc +148 -1
  8. package/lib/replace.cc +5 -4
  9. package/lib/search.cc +1 -1
  10. package/lib/set.cc +75 -0
  11. package/lib/test.cc +1 -1
  12. package/lib/unicode_properties.h +15840 -0
  13. package/lib/wrapped_re2.h +11 -4
  14. package/lib/wrapped_re2_set.h +3 -1
  15. package/llms-full.txt +37 -7
  16. package/llms.txt +4 -1
  17. package/package.json +11 -10
  18. package/re2.d.ts +2 -0
  19. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +87 -74
  20. package/vendor/abseil-cpp/CMakeLists.txt +3 -3
  21. package/vendor/abseil-cpp/FAQ.md +130 -79
  22. package/vendor/abseil-cpp/MODULE.bazel +6 -7
  23. package/vendor/abseil-cpp/absl/BUILD.bazel +6 -0
  24. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +4 -0
  25. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +4 -0
  26. package/vendor/abseil-cpp/absl/algorithm/algorithm.h +34 -2
  27. package/vendor/abseil-cpp/absl/algorithm/container.h +164 -17
  28. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +390 -13
  29. package/vendor/abseil-cpp/absl/base/BUILD.bazel +53 -6
  30. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +28 -4
  31. package/vendor/abseil-cpp/absl/base/attributes.h +61 -42
  32. package/vendor/abseil-cpp/absl/base/call_once.h +1 -0
  33. package/vendor/abseil-cpp/absl/base/casts.h +8 -1
  34. package/vendor/abseil-cpp/absl/base/casts_test.cc +3 -6
  35. package/vendor/abseil-cpp/absl/base/config.h +54 -10
  36. package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +9 -9
  37. package/vendor/abseil-cpp/absl/base/fast_type_id.h +30 -2
  38. package/vendor/abseil-cpp/absl/base/fast_type_id_test.cc +3 -0
  39. package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +15 -12
  40. package/vendor/abseil-cpp/absl/base/internal/hardening.h +136 -0
  41. package/vendor/abseil-cpp/absl/base/internal/hardening_test.cc +168 -0
  42. package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +2 -2
  43. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -0
  44. package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
  45. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +1 -2
  46. package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
  47. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
  48. package/vendor/abseil-cpp/absl/base/macros.h +36 -20
  49. package/vendor/abseil-cpp/absl/base/nullability.h +4 -3
  50. package/vendor/abseil-cpp/absl/base/optimization.h +3 -2
  51. package/vendor/abseil-cpp/absl/base/optimization_test.cc +4 -3
  52. package/vendor/abseil-cpp/absl/base/options.h +55 -1
  53. package/vendor/abseil-cpp/absl/base/policy_checks.h +5 -5
  54. package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
  55. package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
  56. package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +19 -28
  57. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -0
  58. package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +2 -0
  59. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +3 -2
  60. package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
  61. package/vendor/abseil-cpp/absl/container/BUILD.bazel +19 -7
  62. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +6 -5
  63. package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +3 -5
  64. package/vendor/abseil-cpp/absl/container/btree_set.h +5 -5
  65. package/vendor/abseil-cpp/absl/container/btree_test.cc +11 -14
  66. package/vendor/abseil-cpp/absl/container/chunked_queue.h +8 -6
  67. package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +5 -5
  68. package/vendor/abseil-cpp/absl/container/fixed_array.h +14 -13
  69. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +3 -3
  70. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +18 -6
  71. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +34 -1
  72. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +21 -7
  73. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +39 -7
  74. package/vendor/abseil-cpp/absl/container/inlined_vector.h +29 -29
  75. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2 -2
  76. package/vendor/abseil-cpp/absl/container/internal/btree.h +32 -24
  77. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +16 -17
  78. package/vendor/abseil-cpp/absl/container/internal/common.h +6 -5
  79. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  80. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +16 -16
  81. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +13 -13
  82. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +41 -31
  83. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +2 -2
  84. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +4 -4
  85. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +3 -3
  86. package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +27 -19
  87. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -2
  88. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -17
  89. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +12 -30
  90. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +28 -28
  91. package/vendor/abseil-cpp/absl/container/internal/layout.h +13 -13
  92. package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +3 -2
  93. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +60 -62
  94. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +59 -39
  95. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +619 -326
  96. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +25 -2
  97. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +4 -4
  98. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +575 -159
  99. package/vendor/abseil-cpp/absl/container/linked_hash_map.h +2 -2
  100. package/vendor/abseil-cpp/absl/container/node_hash_map.h +27 -15
  101. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +34 -0
  102. package/vendor/abseil-cpp/absl/container/node_hash_set.h +25 -11
  103. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +39 -7
  104. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +7 -4
  105. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +0 -1
  106. package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -3
  107. package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +2 -1
  108. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +6 -6
  109. package/vendor/abseil-cpp/absl/crc/internal/crc.cc +4 -6
  110. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
  111. package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
  112. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +143 -81
  113. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +9 -31
  114. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +3 -33
  115. package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
  116. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +2 -1
  117. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +12 -2
  118. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +2 -3
  119. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -0
  120. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -4
  121. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
  122. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +4 -0
  123. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +46 -36
  124. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +18 -58
  125. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +5 -48
  126. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +10 -124
  127. package/vendor/abseil-cpp/absl/debugging/symbolize.cc +20 -2
  128. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +58 -106
  129. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +37 -36
  130. package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
  131. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -3
  132. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +1 -1
  133. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +8 -6
  134. package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +1 -1
  135. package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +5 -5
  136. package/vendor/abseil-cpp/absl/flags/flag_test.cc +30 -30
  137. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +4 -4
  138. package/vendor/abseil-cpp/absl/flags/internal/flag.h +6 -6
  139. package/vendor/abseil-cpp/absl/flags/marshalling.h +2 -28
  140. package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +12 -11
  141. package/vendor/abseil-cpp/absl/flags/reflection_test.cc +1 -1
  142. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +26 -1
  143. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +29 -1
  144. package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -14
  145. package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +46 -47
  146. package/vendor/abseil-cpp/absl/functional/bind_back.h +79 -0
  147. package/vendor/abseil-cpp/absl/functional/bind_back_test.cc +237 -0
  148. package/vendor/abseil-cpp/absl/functional/bind_front.h +7 -1
  149. package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +4 -4
  150. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +2 -2
  151. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +28 -28
  152. package/vendor/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
  153. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
  154. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  155. package/vendor/abseil-cpp/absl/functional/overload_test.cc +13 -13
  156. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +1 -2
  157. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -2
  158. package/vendor/abseil-cpp/absl/hash/hash.h +1 -1
  159. package/vendor/abseil-cpp/absl/hash/hash_test.cc +14 -20
  160. package/vendor/abseil-cpp/absl/hash/hash_testing.h +11 -9
  161. package/vendor/abseil-cpp/absl/hash/internal/city.cc +39 -51
  162. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +165 -47
  163. package/vendor/abseil-cpp/absl/hash/internal/hash.h +82 -26
  164. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +36 -1
  165. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +8 -5
  166. package/vendor/abseil-cpp/absl/log/BUILD.bazel +5 -2
  167. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +5 -3
  168. package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
  169. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +15 -1
  170. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -4
  171. package/vendor/abseil-cpp/absl/log/internal/log_message.h +14 -0
  172. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -1
  173. package/vendor/abseil-cpp/absl/log/internal/proto.cc +13 -0
  174. package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
  175. package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
  176. package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +3 -3
  177. package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +2 -2
  178. package/vendor/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +3 -3
  179. package/vendor/abseil-cpp/absl/log/log_format_test.cc +19 -2
  180. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +18 -0
  181. package/vendor/abseil-cpp/absl/log/log_streamer.h +29 -2
  182. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +18 -0
  183. package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +1 -1
  184. package/vendor/abseil-cpp/absl/log/vlog_is_on.h +0 -2
  185. package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +6 -5
  186. package/vendor/abseil-cpp/absl/memory/memory.h +55 -5
  187. package/vendor/abseil-cpp/absl/memory/memory_test.cc +55 -1
  188. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
  189. package/vendor/abseil-cpp/absl/meta/internal/requires.h +1 -1
  190. package/vendor/abseil-cpp/absl/meta/type_traits.h +119 -55
  191. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +7 -7
  192. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +6 -6
  193. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +3 -1
  194. package/vendor/abseil-cpp/absl/profiling/hashtable.cc +0 -4
  195. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +32 -33
  196. package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +25 -2
  197. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +8 -5
  198. package/vendor/abseil-cpp/absl/random/BUILD.bazel +13 -1
  199. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +23 -2
  200. package/vendor/abseil-cpp/absl/random/benchmarks.cc +1 -1
  201. package/vendor/abseil-cpp/absl/random/beta_distribution.h +2 -2
  202. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
  203. package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +43 -0
  204. package/vendor/abseil-cpp/absl/random/discrete_distribution.h +1 -1
  205. package/vendor/abseil-cpp/absl/random/distributions.h +17 -17
  206. package/vendor/abseil-cpp/absl/random/distributions_test.cc +4 -4
  207. package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -1
  208. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +4 -2
  209. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
  210. package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
  211. package/vendor/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  212. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
  213. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +3 -2
  214. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +14 -40
  215. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
  216. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +2 -2
  217. package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
  218. package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +3 -2
  219. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
  220. package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
  221. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +3 -2
  222. package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +3 -2
  223. package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
  224. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +4 -4
  225. package/vendor/abseil-cpp/absl/random/internal/seed_material.h +2 -1
  226. package/vendor/abseil-cpp/absl/random/internal/traits.h +21 -0
  227. package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -0
  228. package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
  229. package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +2 -1
  230. package/vendor/abseil-cpp/absl/random/mocking_access.h +74 -0
  231. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +9 -19
  232. package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  233. package/vendor/abseil-cpp/absl/status/BUILD.bazel +81 -0
  234. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
  235. package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
  236. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +26 -2
  237. package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +22 -8
  238. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +43 -43
  239. package/vendor/abseil-cpp/absl/status/status.cc +62 -70
  240. package/vendor/abseil-cpp/absl/status/status.h +249 -23
  241. package/vendor/abseil-cpp/absl/status/status_benchmark.cc +12 -0
  242. package/vendor/abseil-cpp/absl/status/status_builder.cc +196 -0
  243. package/vendor/abseil-cpp/absl/status/status_builder.h +978 -0
  244. package/vendor/abseil-cpp/absl/status/status_builder_test.cc +380 -0
  245. package/vendor/abseil-cpp/absl/status/status_macros.h +484 -0
  246. package/vendor/abseil-cpp/absl/status/status_macros_test.cc +634 -0
  247. package/vendor/abseil-cpp/absl/status/status_matchers.h +2 -1
  248. package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +3 -4
  249. package/vendor/abseil-cpp/absl/status/status_payload_printer.h +3 -2
  250. package/vendor/abseil-cpp/absl/status/status_test.cc +443 -13
  251. package/vendor/abseil-cpp/absl/status/statusor.h +69 -36
  252. package/vendor/abseil-cpp/absl/status/statusor_test.cc +132 -35
  253. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +42 -7
  254. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +33 -4
  255. package/vendor/abseil-cpp/absl/strings/ascii.h +1 -2
  256. package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +5 -5
  257. package/vendor/abseil-cpp/absl/strings/cord.cc +26 -7
  258. package/vendor/abseil-cpp/absl/strings/cord.h +23 -13
  259. package/vendor/abseil-cpp/absl/strings/cord_buffer.h +4 -2
  260. package/vendor/abseil-cpp/absl/strings/cord_test.cc +85 -9
  261. package/vendor/abseil-cpp/absl/strings/escaping.cc +176 -30
  262. package/vendor/abseil-cpp/absl/strings/escaping.h +12 -2
  263. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +1 -3
  264. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +18 -18
  265. package/vendor/abseil-cpp/absl/strings/has_absl_stringify_test.cc +2 -2
  266. package/vendor/abseil-cpp/absl/strings/has_ostream_operator_test.cc +2 -2
  267. package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +10 -10
  268. package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +1 -1
  269. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
  270. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
  271. package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
  272. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +2 -26
  273. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +23 -2
  274. package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +6 -2
  275. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -24
  276. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +16 -41
  277. package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
  278. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
  279. package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
  280. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +12 -20
  281. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +510 -307
  282. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -1
  283. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +9 -10
  284. package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +6 -5
  285. package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
  286. package/vendor/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
  287. package/vendor/abseil-cpp/absl/strings/internal/stringify_stream_test.cc +111 -0
  288. package/vendor/abseil-cpp/absl/strings/numbers.cc +406 -0
  289. package/vendor/abseil-cpp/absl/strings/numbers.h +4 -0
  290. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +33 -0
  291. package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +10 -6
  292. package/vendor/abseil-cpp/absl/strings/str_cat.h +36 -1
  293. package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +1 -2
  294. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +28 -0
  295. package/vendor/abseil-cpp/absl/strings/str_join_test.cc +4 -4
  296. package/vendor/abseil-cpp/absl/strings/str_split.h +11 -6
  297. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +13 -0
  298. package/vendor/abseil-cpp/absl/strings/substitute.h +2 -2
  299. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +3 -0
  300. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +21 -0
  301. package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
  302. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +13 -0
  303. package/vendor/abseil-cpp/absl/synchronization/mutex.h +32 -2
  304. package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +17 -3
  305. package/vendor/abseil-cpp/absl/time/BUILD.bazel +80 -0
  306. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +73 -0
  307. package/vendor/abseil-cpp/absl/time/clock.h +3 -0
  308. package/vendor/abseil-cpp/absl/time/clock_interface.cc +71 -0
  309. package/vendor/abseil-cpp/absl/time/clock_interface.h +93 -0
  310. package/vendor/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
  311. package/vendor/abseil-cpp/absl/time/format.cc +3 -10
  312. package/vendor/abseil-cpp/absl/time/format_test.cc +12 -0
  313. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +90 -89
  314. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +80 -5
  315. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +1 -2
  316. package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
  317. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
  318. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
  319. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
  320. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
  321. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
  322. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
  323. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
  324. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
  325. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
  326. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
  327. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +1 -1
  328. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +3 -3
  329. package/vendor/abseil-cpp/absl/time/simulated_clock.cc +225 -0
  330. package/vendor/abseil-cpp/absl/time/simulated_clock.h +109 -0
  331. package/vendor/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
  332. package/vendor/abseil-cpp/absl/types/BUILD.bazel +116 -0
  333. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +100 -0
  334. package/vendor/abseil-cpp/absl/types/any.h +26 -4
  335. package/vendor/abseil-cpp/absl/types/any_span.h +1067 -0
  336. package/vendor/abseil-cpp/absl/types/any_span_benchmark.cc +258 -0
  337. package/vendor/abseil-cpp/absl/types/any_span_test.cc +1210 -0
  338. package/vendor/abseil-cpp/absl/types/compare.h +4 -4
  339. package/vendor/abseil-cpp/absl/types/internal/any_span.h +477 -0
  340. package/vendor/abseil-cpp/absl/types/internal/span.h +5 -6
  341. package/vendor/abseil-cpp/absl/types/optional.h +30 -3
  342. package/vendor/abseil-cpp/absl/types/optional_ref.h +295 -0
  343. package/vendor/abseil-cpp/absl/types/optional_ref_test.cc +370 -0
  344. package/vendor/abseil-cpp/absl/types/source_location.cc +18 -0
  345. package/vendor/abseil-cpp/absl/types/source_location.h +172 -0
  346. package/vendor/abseil-cpp/absl/types/source_location_test.cc +139 -0
  347. package/vendor/abseil-cpp/absl/types/span.h +19 -23
  348. package/vendor/abseil-cpp/absl/types/variant.h +75 -18
  349. package/vendor/abseil-cpp/absl/types/variant_test.cc +23 -23
  350. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -0
  351. package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +1 -0
  352. package/vendor/abseil-cpp/absl/utility/utility.h +99 -16
  353. package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -0
  354. package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +10 -4
  355. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +13 -6
  356. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +10 -4
  357. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +12 -5
  358. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +9 -2
  359. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
  360. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +10 -3
  361. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +8 -2
  362. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -3
  363. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +2 -2
  364. package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -1
  365. package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
  366. package/AGENTS.md +0 -131
  367. package/ARCHITECTURE.md +0 -152
  368. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
  369. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
  370. package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
@@ -19,6 +19,7 @@
19
19
  #include <stdint.h>
20
20
 
21
21
  #include <atomic>
22
+ #include <optional>
22
23
  #include <string>
23
24
  #include <thread> // NOLINT
24
25
  #include <vector>
@@ -42,7 +43,6 @@
42
43
  #include "absl/strings/string_view.h"
43
44
  #include "absl/time/clock.h"
44
45
  #include "absl/time/time.h"
45
- #include "absl/types/optional.h"
46
46
 
47
47
  ABSL_DECLARE_FLAG(int64_t, mistyped_int_flag);
48
48
  ABSL_DECLARE_FLAG(std::vector<std::string>, mistyped_string_flag);
@@ -1038,7 +1038,7 @@ std::string AbslUnparseFlag(const NonTriviallyCopyableUDT<id>&) {
1038
1038
  template <int id, typename F>
1039
1039
  void TestExpectedLeaks(
1040
1040
  F&& f, uint64_t num_leaks,
1041
- absl::optional<uint64_t> num_new_instances = absl::nullopt) {
1041
+ std::optional<uint64_t> num_new_instances = std::nullopt) {
1042
1042
  if (!num_new_instances.has_value()) num_new_instances = num_leaks;
1043
1043
 
1044
1044
  auto num_leaked_before = flags::NumLeakedFlagValues();
@@ -1216,14 +1216,14 @@ TEST_F(FlagTest, MacroWithinAbslFlag) {
1216
1216
 
1217
1217
  // --------------------------------------------------------------------
1218
1218
 
1219
- ABSL_FLAG(absl::optional<bool>, optional_bool, absl::nullopt, "help");
1220
- ABSL_FLAG(absl::optional<int>, optional_int, {}, "help");
1221
- ABSL_FLAG(absl::optional<double>, optional_double, 9.3, "help");
1222
- ABSL_FLAG(absl::optional<std::string>, optional_string, absl::nullopt, "help");
1223
- ABSL_FLAG(absl::optional<absl::Duration>, optional_duration, absl::nullopt,
1219
+ ABSL_FLAG(std::optional<bool>, optional_bool, std::nullopt, "help");
1220
+ ABSL_FLAG(std::optional<int>, optional_int, {}, "help");
1221
+ ABSL_FLAG(std::optional<double>, optional_double, 9.3, "help");
1222
+ ABSL_FLAG(std::optional<std::string>, optional_string, std::nullopt, "help");
1223
+ ABSL_FLAG(std::optional<absl::Duration>, optional_duration, std::nullopt,
1224
1224
  "help");
1225
- ABSL_FLAG(absl::optional<absl::optional<int>>, optional_optional_int,
1226
- absl::nullopt, "help");
1225
+ ABSL_FLAG(std::optional<std::optional<int>>, optional_optional_int,
1226
+ std::nullopt, "help");
1227
1227
  #if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
1228
1228
  ABSL_FLAG(std::optional<int64_t>, std_optional_int64, std::nullopt, "help");
1229
1229
  #endif
@@ -1232,7 +1232,7 @@ namespace {
1232
1232
 
1233
1233
  TEST_F(FlagTest, TestOptionalBool) {
1234
1234
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_bool).has_value());
1235
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), absl::nullopt);
1235
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), std::nullopt);
1236
1236
 
1237
1237
  absl::SetFlag(&FLAGS_optional_bool, false);
1238
1238
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_bool).has_value());
@@ -1242,16 +1242,16 @@ TEST_F(FlagTest, TestOptionalBool) {
1242
1242
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_bool).has_value());
1243
1243
  EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), true);
1244
1244
 
1245
- absl::SetFlag(&FLAGS_optional_bool, absl::nullopt);
1245
+ absl::SetFlag(&FLAGS_optional_bool, std::nullopt);
1246
1246
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_bool).has_value());
1247
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), absl::nullopt);
1247
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_bool), std::nullopt);
1248
1248
  }
1249
1249
 
1250
1250
  // --------------------------------------------------------------------
1251
1251
 
1252
1252
  TEST_F(FlagTest, TestOptionalInt) {
1253
1253
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_int).has_value());
1254
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), absl::nullopt);
1254
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), std::nullopt);
1255
1255
 
1256
1256
  absl::SetFlag(&FLAGS_optional_int, 0);
1257
1257
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_int).has_value());
@@ -1261,9 +1261,9 @@ TEST_F(FlagTest, TestOptionalInt) {
1261
1261
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_int).has_value());
1262
1262
  EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), 10);
1263
1263
 
1264
- absl::SetFlag(&FLAGS_optional_int, absl::nullopt);
1264
+ absl::SetFlag(&FLAGS_optional_int, std::nullopt);
1265
1265
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_int).has_value());
1266
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), absl::nullopt);
1266
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_int), std::nullopt);
1267
1267
  }
1268
1268
 
1269
1269
  // --------------------------------------------------------------------
@@ -1280,16 +1280,16 @@ TEST_F(FlagTest, TestOptionalDouble) {
1280
1280
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_double).has_value());
1281
1281
  EXPECT_DOUBLE_EQ(*absl::GetFlag(FLAGS_optional_double), 1.234);
1282
1282
 
1283
- absl::SetFlag(&FLAGS_optional_double, absl::nullopt);
1283
+ absl::SetFlag(&FLAGS_optional_double, std::nullopt);
1284
1284
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_double).has_value());
1285
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_double), absl::nullopt);
1285
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_double), std::nullopt);
1286
1286
  }
1287
1287
 
1288
1288
  // --------------------------------------------------------------------
1289
1289
 
1290
1290
  TEST_F(FlagTest, TestOptionalString) {
1291
1291
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_string).has_value());
1292
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), absl::nullopt);
1292
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), std::nullopt);
1293
1293
 
1294
1294
  // Setting optional string to "" leads to undefined behavior.
1295
1295
 
@@ -1301,16 +1301,16 @@ TEST_F(FlagTest, TestOptionalString) {
1301
1301
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_string).has_value());
1302
1302
  EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), "QWERTY");
1303
1303
 
1304
- absl::SetFlag(&FLAGS_optional_string, absl::nullopt);
1304
+ absl::SetFlag(&FLAGS_optional_string, std::nullopt);
1305
1305
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_string).has_value());
1306
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), absl::nullopt);
1306
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_string), std::nullopt);
1307
1307
  }
1308
1308
 
1309
1309
  // --------------------------------------------------------------------
1310
1310
 
1311
1311
  TEST_F(FlagTest, TestOptionalDuration) {
1312
1312
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_duration).has_value());
1313
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), absl::nullopt);
1313
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), std::nullopt);
1314
1314
 
1315
1315
  absl::SetFlag(&FLAGS_optional_duration, absl::ZeroDuration());
1316
1316
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_duration).has_value());
@@ -1320,37 +1320,37 @@ TEST_F(FlagTest, TestOptionalDuration) {
1320
1320
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_duration).has_value());
1321
1321
  EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), absl::Hours(3));
1322
1322
 
1323
- absl::SetFlag(&FLAGS_optional_duration, absl::nullopt);
1323
+ absl::SetFlag(&FLAGS_optional_duration, std::nullopt);
1324
1324
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_duration).has_value());
1325
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), absl::nullopt);
1325
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_duration), std::nullopt);
1326
1326
  }
1327
1327
 
1328
1328
  // --------------------------------------------------------------------
1329
1329
 
1330
1330
  TEST_F(FlagTest, TestOptionalOptional) {
1331
1331
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
1332
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), absl::nullopt);
1332
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), std::nullopt);
1333
1333
 
1334
- absl::optional<int> nullint{absl::nullopt};
1334
+ std::optional<int> nullint{std::nullopt};
1335
1335
 
1336
1336
  absl::SetFlag(&FLAGS_optional_optional_int, nullint);
1337
1337
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
1338
1338
  EXPECT_NE(absl::GetFlag(FLAGS_optional_optional_int), nullint);
1339
1339
  EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int),
1340
- absl::optional<absl::optional<int>>{nullint});
1340
+ std::optional<std::optional<int>>{nullint});
1341
1341
 
1342
1342
  absl::SetFlag(&FLAGS_optional_optional_int, 0);
1343
1343
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
1344
1344
  EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), 0);
1345
1345
 
1346
- absl::SetFlag(&FLAGS_optional_optional_int, absl::optional<int>{0});
1346
+ absl::SetFlag(&FLAGS_optional_optional_int, std::optional<int>{0});
1347
1347
  EXPECT_TRUE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
1348
1348
  EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), 0);
1349
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), absl::optional<int>{0});
1349
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), std::optional<int>{0});
1350
1350
 
1351
- absl::SetFlag(&FLAGS_optional_optional_int, absl::nullopt);
1351
+ absl::SetFlag(&FLAGS_optional_optional_int, std::nullopt);
1352
1352
  EXPECT_FALSE(absl::GetFlag(FLAGS_optional_optional_int).has_value());
1353
- EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), absl::nullopt);
1353
+ EXPECT_EQ(absl::GetFlag(FLAGS_optional_optional_int), std::nullopt);
1354
1354
  }
1355
1355
 
1356
1356
  // --------------------------------------------------------------------
@@ -443,7 +443,7 @@ std::unique_ptr<FlagStateInterface> FlagImpl::SaveState() {
443
443
  switch (ValueStorageKind()) {
444
444
  case FlagValueStorageKind::kValueAndInitBit:
445
445
  case FlagValueStorageKind::kOneWordAtomic: {
446
- return absl::make_unique<FlagState>(
446
+ return std::make_unique<FlagState>(
447
447
  *this, OneWordValue().load(std::memory_order_acquire), modified,
448
448
  on_command_line, ModificationCount());
449
449
  }
@@ -454,11 +454,11 @@ std::unique_ptr<FlagStateInterface> FlagImpl::SaveState() {
454
454
  seq_lock_.TryRead(cloned, AtomicBufferValue(), Sizeof(op_));
455
455
  assert(success);
456
456
  static_cast<void>(success);
457
- return absl::make_unique<FlagState>(*this, cloned, modified,
458
- on_command_line, ModificationCount());
457
+ return std::make_unique<FlagState>(*this, cloned, modified,
458
+ on_command_line, ModificationCount());
459
459
  }
460
460
  case FlagValueStorageKind::kHeapAllocated: {
461
- return absl::make_unique<FlagState>(
461
+ return std::make_unique<FlagState>(
462
462
  *this,
463
463
  flags_internal::Clone(
464
464
  op_, PtrStorage().load(std::memory_order_acquire).Ptr()),
@@ -135,7 +135,7 @@ inline size_t Sizeof(FlagOpFn op) {
135
135
  }
136
136
  // Returns fast type id corresponding to the value type.
137
137
  inline FlagFastTypeId FastTypeId(FlagOpFn op) {
138
- return reinterpret_cast<FlagFastTypeId>(
138
+ return absl::bit_cast<FlagFastTypeId>(
139
139
  op(FlagOp::kFastTypeId, nullptr, nullptr, nullptr));
140
140
  }
141
141
  // Returns fast type id corresponding to the value type.
@@ -168,7 +168,7 @@ inline const std::type_info* GenRuntimeTypeId() {
168
168
  // Flag help auxiliary structs.
169
169
 
170
170
  // This is help argument for absl::Flag encapsulating the string literal pointer
171
- // or pointer to function generating it as well as enum descriminating two
171
+ // or pointer to function generating it as well as enum discriminating two
172
172
  // cases.
173
173
  using HelpGenFunc = std::string (*)();
174
174
 
@@ -178,7 +178,7 @@ struct FixedCharArray {
178
178
 
179
179
  template <size_t... I>
180
180
  static constexpr FixedCharArray<N> FromLiteralString(
181
- absl::string_view str, absl::index_sequence<I...>) {
181
+ absl::string_view str, std::index_sequence<I...>) {
182
182
  return (void)str, FixedCharArray<N>({{str[I]..., '\0'}});
183
183
  }
184
184
  };
@@ -186,7 +186,7 @@ struct FixedCharArray {
186
186
  template <typename Gen, size_t N = Gen::Value().size()>
187
187
  constexpr FixedCharArray<N + 1> HelpStringAsArray(int) {
188
188
  return FixedCharArray<N + 1>::FromLiteralString(
189
- Gen::Value(), absl::make_index_sequence<N>{});
189
+ Gen::Value(), std::make_index_sequence<N>{});
190
190
  }
191
191
 
192
192
  template <typename Gen>
@@ -608,7 +608,7 @@ class FlagImpl final : public CommandLineFlag {
608
608
  *value = ReadOneBool();
609
609
  }
610
610
  template <typename T,
611
- absl::enable_if_t<flags_internal::StorageKind<T>() ==
611
+ std::enable_if_t<flags_internal::StorageKind<T>() ==
612
612
  FlagValueStorageKind::kOneWordAtomic,
613
613
  int> = 0>
614
614
  void Read(T* value) const ABSL_LOCKS_EXCLUDED(DataGuard()) {
@@ -901,7 +901,7 @@ void* FlagOps(FlagOp op, const void* v1, void* v2, void* v3) {
901
901
  case FlagOp::kSizeof:
902
902
  return reinterpret_cast<void*>(static_cast<uintptr_t>(sizeof(T)));
903
903
  case FlagOp::kFastTypeId:
904
- return const_cast<void*>(absl::FastTypeId<T>());
904
+ return absl::bit_cast<void*>(absl::FastTypeId<T>());
905
905
  case FlagOp::kRuntimeTypeId:
906
906
  return const_cast<std::type_info*>(GenRuntimeTypeId<T>());
907
907
  case FlagOp::kParse: {
@@ -199,15 +199,12 @@
199
199
  #ifndef ABSL_FLAGS_MARSHALLING_H_
200
200
  #define ABSL_FLAGS_MARSHALLING_H_
201
201
 
202
- #include "absl/base/config.h"
203
- #include "absl/numeric/int128.h"
204
-
205
- #if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
206
202
  #include <optional>
207
- #endif
208
203
  #include <string>
209
204
  #include <vector>
210
205
 
206
+ #include "absl/base/config.h"
207
+ #include "absl/numeric/int128.h"
211
208
  #include "absl/strings/string_view.h"
212
209
  #include "absl/types/optional.h"
213
210
 
@@ -241,21 +238,6 @@ bool AbslParseFlag(absl::string_view, double*, std::string*);
241
238
  bool AbslParseFlag(absl::string_view, std::string*, std::string*);
242
239
  bool AbslParseFlag(absl::string_view, std::vector<std::string>*, std::string*);
243
240
 
244
- template <typename T>
245
- bool AbslParseFlag(absl::string_view text, absl::optional<T>* f,
246
- std::string* err) {
247
- if (text.empty()) {
248
- *f = absl::nullopt;
249
- return true;
250
- }
251
- T value;
252
- if (!absl::ParseFlag(text, &value, err)) return false;
253
-
254
- *f = std::move(value);
255
- return true;
256
- }
257
-
258
- #if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
259
241
  template <typename T>
260
242
  bool AbslParseFlag(absl::string_view text, std::optional<T>* f,
261
243
  std::string* err) {
@@ -269,7 +251,6 @@ bool AbslParseFlag(absl::string_view text, std::optional<T>* f,
269
251
  *f = std::move(value);
270
252
  return true;
271
253
  }
272
- #endif
273
254
 
274
255
  template <typename T>
275
256
  bool InvokeParseFlag(absl::string_view input, T* dst, std::string* err) {
@@ -284,17 +265,10 @@ bool InvokeParseFlag(absl::string_view input, T* dst, std::string* err) {
284
265
  std::string AbslUnparseFlag(absl::string_view v);
285
266
  std::string AbslUnparseFlag(const std::vector<std::string>&);
286
267
 
287
- template <typename T>
288
- std::string AbslUnparseFlag(const absl::optional<T>& f) {
289
- return f.has_value() ? absl::UnparseFlag(*f) : "";
290
- }
291
-
292
- #if defined(ABSL_HAVE_STD_OPTIONAL) && !defined(ABSL_USES_STD_OPTIONAL)
293
268
  template <typename T>
294
269
  std::string AbslUnparseFlag(const std::optional<T>& f) {
295
270
  return f.has_value() ? absl::UnparseFlag(*f) : "";
296
271
  }
297
- #endif
298
272
 
299
273
  template <typename T>
300
274
  std::string Unparse(const T& v) {
@@ -19,6 +19,7 @@
19
19
 
20
20
  #include <cmath>
21
21
  #include <limits>
22
+ #include <optional>
22
23
  #include <string>
23
24
  #include <vector>
24
25
 
@@ -777,7 +778,7 @@ TEST(MarshallingTest, TestVectorOfStringParsing) {
777
778
 
778
779
  TEST(MarshallingTest, TestOptionalBoolParsing) {
779
780
  std::string err;
780
- absl::optional<bool> value;
781
+ std::optional<bool> value;
781
782
 
782
783
  EXPECT_TRUE(absl::ParseFlag("", &value, &err));
783
784
  EXPECT_FALSE(value.has_value());
@@ -797,7 +798,7 @@ TEST(MarshallingTest, TestOptionalBoolParsing) {
797
798
 
798
799
  TEST(MarshallingTest, TestOptionalIntParsing) {
799
800
  std::string err;
800
- absl::optional<int> value;
801
+ std::optional<int> value;
801
802
 
802
803
  EXPECT_TRUE(absl::ParseFlag("", &value, &err));
803
804
  EXPECT_FALSE(value.has_value());
@@ -817,7 +818,7 @@ TEST(MarshallingTest, TestOptionalIntParsing) {
817
818
 
818
819
  TEST(MarshallingTest, TestOptionalDoubleParsing) {
819
820
  std::string err;
820
- absl::optional<double> value;
821
+ std::optional<double> value;
821
822
 
822
823
  EXPECT_TRUE(absl::ParseFlag("", &value, &err));
823
824
  EXPECT_FALSE(value.has_value());
@@ -837,7 +838,7 @@ TEST(MarshallingTest, TestOptionalDoubleParsing) {
837
838
 
838
839
  TEST(MarshallingTest, TestOptionalStringParsing) {
839
840
  std::string err;
840
- absl::optional<std::string> value;
841
+ std::optional<std::string> value;
841
842
 
842
843
  EXPECT_TRUE(absl::ParseFlag("", &value, &err));
843
844
  EXPECT_FALSE(value.has_value());
@@ -1041,49 +1042,49 @@ TEST(MarshallingTest, TestStringUnparsing) {
1041
1042
  // --------------------------------------------------------------------
1042
1043
 
1043
1044
  TEST(MarshallingTest, TestOptionalBoolUnparsing) {
1044
- absl::optional<bool> value;
1045
+ std::optional<bool> value;
1045
1046
 
1046
1047
  EXPECT_EQ(absl::UnparseFlag(value), "");
1047
1048
  value = true;
1048
1049
  EXPECT_EQ(absl::UnparseFlag(value), "true");
1049
1050
  value = false;
1050
1051
  EXPECT_EQ(absl::UnparseFlag(value), "false");
1051
- value = absl::nullopt;
1052
+ value = std::nullopt;
1052
1053
  EXPECT_EQ(absl::UnparseFlag(value), "");
1053
1054
  }
1054
1055
 
1055
1056
  // --------------------------------------------------------------------
1056
1057
 
1057
1058
  TEST(MarshallingTest, TestOptionalIntUnparsing) {
1058
- absl::optional<int> value;
1059
+ std::optional<int> value;
1059
1060
 
1060
1061
  EXPECT_EQ(absl::UnparseFlag(value), "");
1061
1062
  value = 0;
1062
1063
  EXPECT_EQ(absl::UnparseFlag(value), "0");
1063
1064
  value = -12;
1064
1065
  EXPECT_EQ(absl::UnparseFlag(value), "-12");
1065
- value = absl::nullopt;
1066
+ value = std::nullopt;
1066
1067
  EXPECT_EQ(absl::UnparseFlag(value), "");
1067
1068
  }
1068
1069
 
1069
1070
  // --------------------------------------------------------------------
1070
1071
 
1071
1072
  TEST(MarshallingTest, TestOptionalDoubleUnparsing) {
1072
- absl::optional<double> value;
1073
+ std::optional<double> value;
1073
1074
 
1074
1075
  EXPECT_EQ(absl::UnparseFlag(value), "");
1075
1076
  value = 1.;
1076
1077
  EXPECT_EQ(absl::UnparseFlag(value), "1");
1077
1078
  value = -1.23;
1078
1079
  EXPECT_EQ(absl::UnparseFlag(value), "-1.23");
1079
- value = absl::nullopt;
1080
+ value = std::nullopt;
1080
1081
  EXPECT_EQ(absl::UnparseFlag(value), "");
1081
1082
  }
1082
1083
 
1083
1084
  // --------------------------------------------------------------------
1084
1085
 
1085
1086
  TEST(MarshallingTest, TestOptionalStringUnparsing) {
1086
- absl::optional<std::string> strvalue;
1087
+ std::optional<std::string> strvalue;
1087
1088
  EXPECT_EQ(absl::UnparseFlag(strvalue), "");
1088
1089
 
1089
1090
  strvalue = "asdfg";
@@ -38,7 +38,7 @@ class ReflectionTest : public testing::Test {
38
38
  #if ABSL_FLAGS_STRIP_NAMES
39
39
  GTEST_SKIP() << "This test requires flag names to be present";
40
40
  #endif
41
- flag_saver_ = absl::make_unique<absl::FlagSaver>();
41
+ flag_saver_ = std::make_unique<absl::FlagSaver>();
42
42
  }
43
43
  void TearDown() override { flag_saver_.reset(); }
44
44
 
@@ -70,6 +70,32 @@ cc_test(
70
70
  ],
71
71
  )
72
72
 
73
+ cc_library(
74
+ name = "bind_back",
75
+ srcs = ["internal/back_binder.h"],
76
+ hdrs = ["bind_back.h"],
77
+ copts = ABSL_DEFAULT_COPTS,
78
+ linkopts = ABSL_DEFAULT_LINKOPTS,
79
+ deps = [
80
+ "//absl/base:config",
81
+ "//absl/container:compressed_tuple",
82
+ "//absl/utility",
83
+ ],
84
+ )
85
+
86
+ cc_test(
87
+ name = "bind_back_test",
88
+ srcs = ["bind_back_test.cc"],
89
+ copts = ABSL_TEST_COPTS,
90
+ linkopts = ABSL_DEFAULT_LINKOPTS,
91
+ deps = [
92
+ ":bind_back",
93
+ "//absl/memory",
94
+ "@googletest//:gtest",
95
+ "@googletest//:gtest_main",
96
+ ],
97
+ )
98
+
73
99
  cc_library(
74
100
  name = "bind_front",
75
101
  srcs = ["internal/front_binder.h"],
@@ -149,7 +175,6 @@ cc_test(
149
175
  "//absl/base:config",
150
176
  "//absl/strings",
151
177
  "//absl/strings:string_view",
152
- "//absl/types:variant",
153
178
  "@googletest//:gtest",
154
179
  "@googletest//:gtest_main",
155
180
  ],
@@ -50,6 +50,35 @@ absl_cc_test(
50
50
  GTest::gmock_main
51
51
  )
52
52
 
53
+ absl_cc_library(
54
+ NAME
55
+ bind_back
56
+ SRCS
57
+ "internal/back_binder.h"
58
+ HDRS
59
+ "bind_back.h"
60
+ COPTS
61
+ ${ABSL_DEFAULT_COPTS}
62
+ DEPS
63
+ absl::compressed_tuple
64
+ absl::config
65
+ absl::utility
66
+ PUBLIC
67
+ )
68
+
69
+ absl_cc_test(
70
+ NAME
71
+ bind_back_test
72
+ SRCS
73
+ "bind_back_test.cc"
74
+ COPTS
75
+ ${ABSL_DEFAULT_COPTS}
76
+ DEPS
77
+ absl::bind_back
78
+ absl::memory
79
+ GTest::gmock_main
80
+ )
81
+
53
82
  absl_cc_library(
54
83
  NAME
55
84
  bind_front
@@ -135,6 +164,5 @@ absl_cc_test(
135
164
  absl::overload
136
165
  absl::string_view
137
166
  absl::strings
138
- absl::variant
139
167
  GTest::gmock_main
140
168
  )
@@ -191,7 +191,7 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
191
191
  // Upon construction, `*this` is only empty if `f` is a function pointer or
192
192
  // member pointer type and is null, or if `f` is an `AnyInvocable` that is
193
193
  // empty.
194
- template <class F, typename = absl::enable_if_t<
194
+ template <class F, typename = std::enable_if_t<
195
195
  internal_any_invocable::CanConvert<Sig, F>::value>>
196
196
  AnyInvocable(F&& f) // NOLINT
197
197
  : Impl(internal_any_invocable::ConversionConstruct(),
@@ -203,28 +203,27 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
203
203
  // Example:
204
204
  //
205
205
  // AnyInvocable<int(int)> func(
206
- // absl::in_place_type<PossiblyImmovableType>, arg1, arg2);
206
+ // std::in_place_type<PossiblyImmovableType>, arg1, arg2);
207
207
  //
208
208
  template <class T, class... Args,
209
- typename = absl::enable_if_t<
209
+ typename = std::enable_if_t<
210
210
  internal_any_invocable::CanEmplace<Sig, T, Args...>::value>>
211
- explicit AnyInvocable(absl::in_place_type_t<T>, Args&&... args)
212
- : Impl(absl::in_place_type<absl::decay_t<T>>,
213
- std::forward<Args>(args)...) {
214
- static_assert(std::is_same<T, absl::decay_t<T>>::value,
211
+ explicit AnyInvocable(std::in_place_type_t<T>, Args&&... args)
212
+ : Impl(std::in_place_type<std::decay_t<T>>, std::forward<Args>(args)...) {
213
+ static_assert(std::is_same<T, std::decay_t<T>>::value,
215
214
  "The explicit template argument of in_place_type is required "
216
215
  "to be an unqualified object type.");
217
216
  }
218
217
 
219
218
  // Overload of the above constructor to support list-initialization.
220
219
  template <class T, class U, class... Args,
221
- typename = absl::enable_if_t<internal_any_invocable::CanEmplace<
220
+ typename = std::enable_if_t<internal_any_invocable::CanEmplace<
222
221
  Sig, T, std::initializer_list<U>&, Args...>::value>>
223
- explicit AnyInvocable(absl::in_place_type_t<T>,
224
- std::initializer_list<U> ilist, Args&&... args)
225
- : Impl(absl::in_place_type<absl::decay_t<T>>, ilist,
222
+ explicit AnyInvocable(std::in_place_type_t<T>, std::initializer_list<U> ilist,
223
+ Args&&... args)
224
+ : Impl(std::in_place_type<std::decay_t<T>>, ilist,
226
225
  std::forward<Args>(args)...) {
227
- static_assert(std::is_same<T, absl::decay_t<T>>::value,
226
+ static_assert(std::is_same<T, std::decay_t<T>>::value,
228
227
  "The explicit template argument of in_place_type is required "
229
228
  "to be an unqualified object type.");
230
229
  }
@@ -248,7 +247,7 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
248
247
  // Upon assignment, `*this` is only empty if `f` is a function pointer or
249
248
  // member pointer type and is null, or if `f` is an `AnyInvocable` that is
250
249
  // empty.
251
- template <class F, typename = absl::enable_if_t<
250
+ template <class F, typename = std::enable_if_t<
252
251
  internal_any_invocable::CanAssign<Sig, F>::value>>
253
252
  AnyInvocable& operator=(F&& f) {
254
253
  *this = AnyInvocable(std::forward<F>(f));
@@ -260,7 +259,7 @@ class ABSL_NULLABILITY_COMPATIBLE ABSL_ATTRIBUTE_OWNER AnyInvocable
260
259
  // `AnyInvocable` instance.
261
260
  template <
262
261
  class F,
263
- typename = absl::enable_if_t<
262
+ typename = std::enable_if_t<
264
263
  internal_any_invocable::CanAssignReferenceWrapper<Sig, F>::value>>
265
264
  AnyInvocable& operator=(std::reference_wrapper<F> f) noexcept {
266
265
  *this = AnyInvocable(f);