Commit Graph

3338 Commits

Author SHA1 Message Date
Abseil Team
d061f5f134 Add [[clang::nomerge]] to absl::base_internal::HardeningAbort()
This lets us distinguish crashes due to different hardening checks.

PiperOrigin-RevId: 910325607
Change-Id: I902df2b849af9dcc0330315cf913d9ed63163bc1
2026-05-04 17:09:23 -07:00
Mike Kruskal
74b81df26c Fix aarch64 stacktrace unwinding.
PiperOrigin-RevId: 910322805
Change-Id: I7a4b80e306ebfe62f36098376c4e4df396ddb8dc
2026-05-04 17:02:17 -07:00
Abseil Team
db10d46386 Change inlined_vector internal consistency assertions to ABSL_ASSERT from ABSL_HARDENING_ASSERT
Several assertions check invariants based on a small set of known callers,
rather than being spatial-safety-related bounds checks.
ABSL_ASSERT is better suited for these checks than ABSL_HARDENING_ASSERT.

PiperOrigin-RevId: 910245176
Change-Id: I7bdeba57219a0d52a359c1af757ee4af4c021ce9
2026-05-04 14:30:53 -07:00
Abseil Team
49fe184484 Deprecate and inline historical typedefs in Abseil
PiperOrigin-RevId: 910228893
Change-Id: I35c700e73c665f7eff07bd069a79905146e9d50b
2026-05-04 14:01:46 -07:00
Abseil Team
8f7e820769 Deprecate and inline absl::variant
PiperOrigin-RevId: 910095755
Change-Id: If517f379a6ada76fd447f0568726805bc37436bb
2026-05-04 10:10:08 -07:00
Abseil Team
ef23debede Deprecate and inline absl::index_sequence
PiperOrigin-RevId: 910095727
Change-Id: I9f175172108186e03559409be2eb1a0600b6a225
2026-05-04 10:09:38 -07:00
Taylor Cramer
deaf349205 Update to layout-compatible StatusCode and StatusCodeError types
PiperOrigin-RevId: 908887690
Change-Id: Ie68f8cc70658b8551b17cd8f9b3bdb4b23916f88
2026-05-01 14:02:18 -07:00
Abseil Team
7dcc24cf19 Factor out ABSL_INTERNAL_UNEVALUATED() from ABSL_ASSERT()
This makes the logic clearer and also allows reuse in other macros in the future, such as hardened assertions.

PiperOrigin-RevId: 908751829
Change-Id: Ic6f2e77755718db1df86510145e16e2ba6c83bcb
2026-05-01 08:44:13 -07:00
Derek Mauro
acbfcef618 Add an absl::StrCat floating-point formatter absl::HighPrecision
absl::HighPrecision produces a string with enough precision that it
can be parsed back to the original floating-point value.
PiperOrigin-RevId: 908689724
Change-Id: Ib076de9e32b0168ce587ea676088f05c8abe7e95
2026-05-01 05:50:23 -07:00
Abseil Team
06534e0cf0 Add VMA naming fallback for LowLevelAlloc.
PiperOrigin-RevId: 908180914
Change-Id: If5266fa8ec5b8777fe7546b2454a562d7e26e0b8
2026-04-30 08:05:27 -07:00
Chris Kennelly
5193aa7983 Add VMA naming fallback for LowLevelAlloc.
PiperOrigin-RevId: 908158129
Change-Id: I79c2677133567272be22cc0a4d73fda99efc15d9
2026-04-30 07:20:22 -07:00
Abseil Team
f9adcd0f0c Add container overloads for absl::c_copy and absl::c_copy_n
These versions accept a container as the output destination. The primary motivation for these overloads is to add bounds checking. We determine if an object is a container by checking if they support `std::begin`/`std::end`.

PiperOrigin-RevId: 907840607
Change-Id: I10430108dc734f1e93c0cef6ca33d251520ac3e8
2026-04-29 16:36:49 -07:00
Abseil Team
a5c21433c7 Add container overloads for absl::c_copy and absl::c_copy_n
These versions accept a container as the output destination. The primary motivation for these overloads is to add bounds checking. We determine if an object is a container by checking if they support `std::begin`/`std::end`.

PiperOrigin-RevId: 907806544
Change-Id: I8830b18df5acad0cd745c7a8d0dd8d1065265c28
2026-04-29 15:24:30 -07:00
Evan Brown
0b7fd1c783 Update static_assert comment.
PiperOrigin-RevId: 907720200
Change-Id: Icb190fdb26d245ff4b4b3fbf561b960087bfc42c
2026-04-29 12:26:48 -07:00
Vitaly Goldshteyn
bbed3b16f0 Relax static_assert on HashtableInlineDataImpl size.
The previous equality check was too strict and fail on platforms where struct with two uint64_t bitfields has size 12, but alignment 8.

PiperOrigin-RevId: 907717466
Change-Id: I7a54ac029967284d4a74aa20d946cd408e2a1254
2026-04-29 12:20:33 -07:00
Mike Kruskal
8ce456967c Remove IWYU private pragmas now that vlog_is_on is public
PiperOrigin-RevId: 907322933
Change-Id: I485ed55cb4f3686fa5dad17f58b65e3aba7dd6b6
2026-04-28 20:35:57 -07:00
Vitaly Goldshteyn
a4ca419989 Refactor HashtableInlineData to support different capacity storage modes.
This change introduces templates for HashtableCapacity, PerTableSeed, and HashtableInlineData to allow for storing capacity as either a full size_t or as a log2 value in a single byte.

`kCapacityAsOneByte` is not possible to propagate to raw_hash_set. The classes are only used in tests.

In kCapacityAsOneByte mode, seed is reduced to 8 bits.
NextHashTableSeed always return 16 bit for simplicity.

PiperOrigin-RevId: 907151369
Change-Id: Iec812b3d564adb3c96d99f11754e116f38848829
2026-04-28 13:30:45 -07:00
Ilya Tokar
1eb0661e7f Re-land crc32 optimization on AMD Milan+
BM_Calculate/0                 1.136n ±  0%   1.136n ± 0%        ~ (p=0.708 n=6)
BM_Calculate/1                 1.420n ±  0%   1.420n ± 0%        ~ (p=0.697 n=6)
BM_Calculate/100               9.374n ±  0%   9.374n ± 0%        ~ (p=0.859 n=6)
BM_Calculate/2048              75.59n ±  1%   66.91n ± 0%  -11.49% (p=0.002 n=6)
BM_Calculate/10000             312.7n ±  0%   284.9n ± 0%   -8.91% (p=0.002 n=6)
BM_Calculate/500000            14.78µ ±  1%   13.40µ ± 1%   -9.37% (p=0.002 n=6)
BM_Extend/0                    1.136n ±  0%   1.137n ± 0%        ~ (p=0.935 n=6)
BM_Extend/1                    1.421n ±  0%   1.278n ± 0%  -10.03% (p=0.002 n=6)
BM_Extend/100                  9.376n ±  0%   9.091n ± 0%   -3.05% (p=0.002 n=6)
BM_Extend/2048                 75.43n ±  0%   66.81n ± 0%  -11.43% (p=0.002 n=6)
BM_Extend/10000                312.5n ±  0%   284.9n ± 0%   -8.83% (p=0.002 n=6)
BM_Extend/500000               14.82µ ±  1%   13.39µ ± 1%   -9.59% (p=0.002 n=6)
BM_Extend/100000000            3.185m ±  0%   2.790m ± 0%  -12.40% (p=0.002 n=6)
BM_ExtendCacheMiss/10          26.06m ±  0%   23.91m ± 1%   -8.27% (p=0.002 n=6)
BM_ExtendCacheMiss/100         14.06m ±  1%   13.78m ± 1%   -1.99% (p=0.002 n=6)
BM_ExtendCacheMiss/1000        26.89m ±  4%   26.66m ± 2%        ~ (p=0.132 n=6)
BM_ExtendCacheMiss/100000      5.120m ±  1%   4.582m ± 1%  -10.52% (p=0.002 n=6)

PiperOrigin-RevId: 907109111
Change-Id: I5a01870bd85a2c69052cdf1677987d762a8a1a2a
2026-04-28 12:10:12 -07:00
Abseil Team
bbdeb411c7 Add GenericPrint specialization for std::monostate.
`std::monostate` is a struct without any fields thus there is no content to be printed at all. However, the default printer prints it as `"unprintable value of size 1 @{some address}"` which is not very useful unless we're really interested in the address of struct having nothing.

PiperOrigin-RevId: 906966193
Change-Id: I7121bd9d58ac9930fa19432d76788d1df6dc5b78
2026-04-28 07:28:18 -07:00
Abseil Team
892f513289 Remove extraneous symbol from nullability documentation comment
PiperOrigin-RevId: 906497517
Change-Id: Ifd16da0965af34376bb4d22e13a8beb0f2933fcd
2026-04-27 12:45:50 -07:00
Abseil Team
852fc61f31 Remove more lingering C++17 type traits polyfill usages
This will let us deprecate the declarations without triggering warnings in Abseil itself.

PiperOrigin-RevId: 906360966
Change-Id: Iee362ac0eac647909ef38003280f1179813f764d
2026-04-27 08:03:53 -07:00
Abseil Team
351086314d Update documentation for absl::StrSplit() to mention that
the input is processed sequentially from beginning to end.

PiperOrigin-RevId: 905243329
Change-Id: I9a6fe9be7254ceaeb02f070958f76f622563a028
2026-04-24 15:16:43 -07:00
Abseil Team
3a4bad5944 Add absl::bind_back
PiperOrigin-RevId: 905242962
Change-Id: I7ba08d1b610db5be723b2313e11f7a5d4d7ddb6e
2026-04-24 15:15:51 -07:00
Derek Mauro
418845fbea Partial rollback of removal of usages of absl::void_t
This breaks GCC 9 builds in absl::any_invocable

PiperOrigin-RevId: 905200659
Change-Id: Ica2b26af7f53006579148f077cd47482d17f9cd3
2026-04-24 13:41:45 -07:00
Derek Mauro
0b1904f017 Fix MSVC warning C4819 by removing various unicode dash characters
Fixes #2039
Fixes #2040

PiperOrigin-RevId: 905121492
Change-Id: I26a5a0da728243f7cfe8fc7932ce0878ed3baf1d
2026-04-24 11:02:13 -07:00
Abseil Team
6bafadb4c0 Import of CCTZ from GitHub.
PiperOrigin-RevId: 905097654
Change-Id: I9a9e0e791dc38d110b85074618ec8dbc01dea12f
2026-04-24 10:16:32 -07:00
Abseil Team
0df2ed87fd Restrict ABSL_ATTRIBUTE_NULL_AFTER_MOVE to clang >= 12.0, when support for
multiple clang::annotate arguments was added.

PiperOrigin-RevId: 904794075
Change-Id: Ie633d9a000d65386d64e6b43bbb15c3e7b5905b4
2026-04-23 21:47:44 -07:00
Mike Kruskal
f58ee26604 Add a friendship for gloop testing
PiperOrigin-RevId: 904670147
Change-Id: Ib9741bf43ce4eb07476585610eba31e1e4c206a9
2026-04-23 15:38:58 -07:00
Abseil Team
dcd3be563a Update Emscripten version macros to use uppercase variants.
PiperOrigin-RevId: 904570769
Change-Id: I040c6b64e6f3dcdb39660454f89aeb8635468722
2026-04-23 12:04:13 -07:00
Abseil Team
8a6b6ae902 Automated rollback of commit 34e723033b.
PiperOrigin-RevId: 903357540
Change-Id: I0c25be897ce7cd5d0e4e82f66f912516b2943400
2026-04-21 12:10:31 -07:00
Abseil Team
34e723033b Change abseil hardening assertions in types directory from macros to functions
This associates debug information with the assertion sites, allowing clearer stack-traces for assertion failures and better accounting of the performance overhead of assertions.

This change also changes the assertion functions from inline to constexpr, to allow functions using them to be called from static assertions (like optional_ref::operator* in optional_ref's constexpr test).

PiperOrigin-RevId: 903344377
Change-Id: I50166b6cf12a8f139ed3c9fe4f6c6e0f24b51812
2026-04-21 11:43:47 -07:00
Abseil Team
ac5ea999a3 Change abseil hardening assertions in types directory from macros to functions
This associates debug information with the assertion sites, allowing clearer stack-traces for assertion failures and better accounting of the performance overhead of assertions.

This change also changes the assertion functions from inline to constexpr, to allow functions using them to be called from static assertions (like optional_ref::operator* in optional_ref's constexpr test).

PiperOrigin-RevId: 903309187
Change-Id: Icbe0fd9d0fe9e212036d17468e80833b95b8a82d
2026-04-21 10:38:58 -07:00
Chris Kennelly
fe307ced1f Replace ABSL_INTERNAL_LOG with ABSL_RAW_LOG in ReadMonotonicClockNanos.
This method is in the transitive callgraph of TCMalloc via absl::base_internal::CycleClock::Frequency().  ABSL_RAW_LOG avoids a potential reentrancy/deadlock issue when TCMalloc invokes `Frequency` while holding one of its locks.

PiperOrigin-RevId: 903293020
Change-Id: I4c8310fa32c1e12d049296377c5a9bf069ef513b
2026-04-21 10:11:28 -07:00
Vitaly Goldshteyn
d4d92a7009 Introduce HashtableCapacity wrapper for capacity_ and rename HashtableSize to HashtableInlineData and move capacity into it.
This change wraps the capacity_ member of CommonFields in a new HashtableCapacity class. This class encapsulates the logic for handling valid capacities and debug-only sentinel values like kMovedFrom and kDestroyed, improving type safety and clarity. Capacity-related helper functions are also reordered within the file to be defined before CommonFields.

The `capacity_` member is now part of the `HashtableInlineData` class, which was previously named `HashtableSize`. This change groups stack-allocated data members together.

This is necessary to make an experiment of storing capacity as 1 byte.
Having Capacity in the same struct would allow to use `data_` as bit-field.

PiperOrigin-RevId: 903283983
Change-Id: Ia5c05f6a476f5b32967737fcb626565948c1505d
2026-04-21 09:52:21 -07:00
Chris Kennelly
6d6854b389 Use if constexpr around allocator type check for hashtable sampling.
PiperOrigin-RevId: 902662156
Change-Id: I20b0d521e3bff4fcbb47bd0ef71c2b10c87c02d7
2026-04-20 08:58:54 -07:00
Mike Kruskal
9aca3c87dc Add a friendship for gloop testing
PiperOrigin-RevId: 902654675
Change-Id: I48105b39609fc7342ad931c6a2ef3e9ef3182070
2026-04-20 08:38:18 -07:00
Abseil Team
b85d16902f Optimzie crc32 on AMD Milan+
We have AVX encoded vector PCLMULQDQ on Milan, so use it to make
crc32c computations ~10% faster. We need to use inline asm, since
building this twice with different complier flags for dynamic
dispatch performed worse due to missing inlining.

BM_Calculate/0                  1.136n ±  0%    1.136n ±  1%        ~ (p=0.968 n=6)
BM_Calculate/1                  1.420n ±  0%    1.421n ±  1%        ~ (p=0.870 n=6)
BM_Calculate/100                9.089n ±  0%    9.660n ±  1%   +6.29% (p=0.002 n=6)
BM_Calculate/2048               75.30n ±  1%    67.67n ±  1%  -10.13% (p=0.002 n=6)
BM_Calculate/10000              313.1n ±  0%    286.1n ±  0%   -8.63% (p=0.002 n=6)
BM_Calculate/500000             14.91µ ±  4%    13.49µ ±  1%   -9.48% (p=0.002 n=6)
BM_Extend/0                     1.136n ±  1%    1.136n ±  1%        ~ (p=0.636 n=6)
BM_Extend/1                     1.420n ±  0%    1.420n ±  1%        ~ (p=0.636 n=6)
BM_Extend/100                   9.247n ±  2%    9.800n ±  2%   +5.99% (p=0.002 n=6)
BM_Extend/2048                  75.73n ±  1%    67.37n ±  1%  -11.04% (p=0.002 n=6)
BM_Extend/10000                 313.2n ±  1%    286.2n ±  0%   -8.62% (p=0.002 n=6)
BM_Extend/500000                14.87µ ±  1%    13.57µ ±  1%   -8.74% (p=0.002 n=6)
BM_Extend/100000000             3.185m ±  2%    2.816m ±  3%  -11.60% (p=0.002 n=6)
BM_ExtendCacheMiss/10           26.07m ±  1%    26.06m ±  1%        ~ (p=1.000 n=6)
BM_ExtendCacheMiss/100          13.86m ±  4%    14.36m ±  2%   +3.61% (p=0.026 n=6)
BM_ExtendCacheMiss/1000         27.02m ±  4%    27.28m ±  4%        ~ (p=0.699 n=6)
BM_ExtendCacheMiss/100000       5.114m ±  5%    4.600m ±  8%  -10.07% (p=0.002 n=6)
BM_ExtendByZeroes/1             1.420n ±  0%    1.420n ±  0%        ~ (p=0.670 n=12)
BM_ExtendByZeroes/10            1.704n ±  1%    1.704n ±  0%        ~ (p=1.000 n=6)
BM_ExtendByZeroes/100           3.128n ±  0%    3.128n ±  0%        ~ (p=1.000 n=6)
BM_ExtendByZeroes/1000          6.758n ±  0%    6.638n ±  1%   -1.78% (p=0.002 n=6)
BM_ExtendByZeroes/10000         6.619n ±  1%    6.503n ±  0%   -1.75% (p=0.002 n=6)
BM_ExtendByZeroes/100000        8.537n ±  1%    8.479n ±  0%   -0.67% (p=0.019 n=6)
BM_ExtendByZeroes/1000000       9.766n ±  1%    9.692n ±  1%   -0.75% (p=0.002 n=6)

PiperOrigin-RevId: 900897540
Change-Id: I57d8df2bf10690afc07009d61f8c4ea61e88ce50
2026-04-16 13:59:26 -07:00
Ilya Tokar
5f9d5bfcc4 Optimzie crc32 on AMD Milan+
We have AVX encoded vector PCLMULQDQ on Milan, so use it to make
crc32c computations ~10% faster. We need to use inline asm, since
building this twice with different complier flags for dynamic
dispatch performed worse due to missing inlining.

BM_Calculate/0                  1.136n ±  0%    1.136n ±  1%        ~ (p=0.968 n=6)
BM_Calculate/1                  1.420n ±  0%    1.421n ±  1%        ~ (p=0.870 n=6)
BM_Calculate/100                9.089n ±  0%    9.660n ±  1%   +6.29% (p=0.002 n=6)
BM_Calculate/2048               75.30n ±  1%    67.67n ±  1%  -10.13% (p=0.002 n=6)
BM_Calculate/10000              313.1n ±  0%    286.1n ±  0%   -8.63% (p=0.002 n=6)
BM_Calculate/500000             14.91µ ±  4%    13.49µ ±  1%   -9.48% (p=0.002 n=6)
BM_Extend/0                     1.136n ±  1%    1.136n ±  1%        ~ (p=0.636 n=6)
BM_Extend/1                     1.420n ±  0%    1.420n ±  1%        ~ (p=0.636 n=6)
BM_Extend/100                   9.247n ±  2%    9.800n ±  2%   +5.99% (p=0.002 n=6)
BM_Extend/2048                  75.73n ±  1%    67.37n ±  1%  -11.04% (p=0.002 n=6)
BM_Extend/10000                 313.2n ±  1%    286.2n ±  0%   -8.62% (p=0.002 n=6)
BM_Extend/500000                14.87µ ±  1%    13.57µ ±  1%   -8.74% (p=0.002 n=6)
BM_Extend/100000000             3.185m ±  2%    2.816m ±  3%  -11.60% (p=0.002 n=6)
BM_ExtendCacheMiss/10           26.07m ±  1%    26.06m ±  1%        ~ (p=1.000 n=6)
BM_ExtendCacheMiss/100          13.86m ±  4%    14.36m ±  2%   +3.61% (p=0.026 n=6)
BM_ExtendCacheMiss/1000         27.02m ±  4%    27.28m ±  4%        ~ (p=0.699 n=6)
BM_ExtendCacheMiss/100000       5.114m ±  5%    4.600m ±  8%  -10.07% (p=0.002 n=6)
BM_ExtendByZeroes/1             1.420n ±  0%    1.420n ±  0%        ~ (p=0.670 n=12)
BM_ExtendByZeroes/10            1.704n ±  1%    1.704n ±  0%        ~ (p=1.000 n=6)
BM_ExtendByZeroes/100           3.128n ±  0%    3.128n ±  0%        ~ (p=1.000 n=6)
BM_ExtendByZeroes/1000          6.758n ±  0%    6.638n ±  1%   -1.78% (p=0.002 n=6)
BM_ExtendByZeroes/10000         6.619n ±  1%    6.503n ±  0%   -1.75% (p=0.002 n=6)
BM_ExtendByZeroes/100000        8.537n ±  1%    8.479n ±  0%   -0.67% (p=0.019 n=6)
BM_ExtendByZeroes/1000000       9.766n ±  1%    9.692n ±  1%   -0.75% (p=0.002 n=6)

PiperOrigin-RevId: 900870516
Change-Id: I1382ae2ffeed35e1d55a0916290144cae5256fe0
2026-04-16 13:02:39 -07:00
Derek Mauro
cd0423dc25 Stop exporting internal Base64 escaping functions that do not need to
be exported. The one function that is currently using it is easily
implemented with absl::Base64Escape().

PiperOrigin-RevId: 900830658
Change-Id: I859d67efafd5ba96921bb75c9207438975d055d6
2026-04-16 11:38:13 -07:00
Abseil Team
b9536c952c Add additional bounds check functions to cover most ABSL_HARDENING_ASSERTs.
Most current uses of ABSL_HARDENING_ASSERT are one of:
* numerical comparison
* checking that a container is non-empty
* checking that a pointer is non-null.

This change adds additional hardening assert functions which conduct the
comparisons necessary for these checks inside the body of the assertion
function, so that the cost of performing the check can be attributed
to the assertion.

For the smaller set of cases where more complex conditions are checked,
a general HardeningAssert which takes a bool is provided.

PiperOrigin-RevId: 899780652
Change-Id: I00602302a5d42d483053ad66d8c3e796d1708567
2026-04-14 14:42:44 -07:00
Abseil Team
04b6110da9 Undo unintended inlining of absl::void_t -- the inlining didn't actually replace it with std::void_t
PiperOrigin-RevId: 898825657
Change-Id: Icd97cec5602753759608623619acd7c6fd5bc953
2026-04-13 00:35:49 -07:00
Chris Kennelly
ea64b6e7e6 Consume result from various SampleRecorder methods.
PiperOrigin-RevId: 897903309
Change-Id: I944031c84f2bcc6c116cef750ce789381b134467
2026-04-10 14:58:39 -07:00
Abseil Team
9cb62a03a4 Remove unnecessary usages of absl::void_t
Most usages of absl::void_t compile fine with std::void_t, so we migrate them here. A few don't compile due to overly eager template instantiations, so we leave those.

PiperOrigin-RevId: 897231619
Change-Id: Iad34101916dac2b995257ebd5d6aacb9a0acfa32
2026-04-09 12:01:41 -07:00
Abhi Raman
354d4d9d13 StrFormat: format %g without heap allocation
PiperOrigin-RevId: 897196391
Change-Id: I0eeb47f4263344a7ce577d78c6029e31a7430385
2026-04-09 10:55:10 -07:00
Abseil Team
8cd64504e2 Remove unnecessary namespace bracketing for an internal nullability macro.
PiperOrigin-RevId: 897160180
Change-Id: I9e82de7c744fc71246aa6b62fd54b2ca4a1a49ac
2026-04-09 09:44:43 -07:00
Derek Mauro
9034b9ca6e Introduce ABSL_OPTION_INLINE_HW_ACCEL_STRATEGY in absl/base/options.h
to provide a centralized policy for hardware-accelerated
implementations in headers.

This option addresses ODR violations that occur when Abseil headers
use compile-time feature detection (such as __SSE4_2__) in inline
functions. If translation units are compiled with inconsistent CPU
architecture flags (e.g., -march=native vs -march=generic) and linked
together, they may disagree on the implementation of these inline
functions. This can lead to crashes or silent data corruption in
hashing.

The new option provides three levels of control:
- 0: Portable. Forces software-only implementations in headers,
  guaranteeing ABI safety across mixed translation units.
- 1: Required. Forces hardware-accelerated implementations in
  headers. The build will fail if the required instructions are not
  enabled in the compiler environment.
- 2: Auto-detect. Selects the best available implementation based on
  compiler flags, but can't guarantee safety if translation units are
  compiled with inconsistent flags.

PiperOrigin-RevId: 896569507
Change-Id: Ifcbc1f3980883feeaa4f05f845ce32310ca7d533
2026-04-08 10:20:35 -07:00
Samuel Benzaquen
884282e28f Refactor error factories to propagate static knowledge to the compiler, where supported.
This allows the compiler to optimize conversions to StatusOr since it can
assume the Status is !ok instead of having to check again.

PiperOrigin-RevId: 896110150
Change-Id: I0dc167906b761339aaac5934764fe2bd6deb1624
2026-04-07 15:16:31 -07:00
Abseil Team
eb76981586 Inline absl::void_t to std::void_t wherever possible
This won't replace all call sites, but that's fine. We only want to replace the call sites that compile fine, since they don't need to use absl::void_t.

PiperOrigin-RevId: 896017307
Change-Id: I7e78066dc973e135922b11fba5c7642563ef6a67
2026-04-07 11:55:56 -07:00
Abseil Team
e7c47687fe Deprecate and inline a lot of C++17 Abseil type traits
PiperOrigin-RevId: 895522956
Change-Id: Ie09a39d70578090a4128ab64b8c9a00f5b155a5e
2026-04-06 15:14:52 -07:00
Abseil Team
95619d531e Remove more lingering C++17 type traits polyfill usages
This will let us deprecate the declarations without triggering warnings in Abseil itself.

PiperOrigin-RevId: 895480358
Change-Id: I2e15877c15ed83f48ddb68cc73344c14b533bc68
2026-04-06 13:44:35 -07:00