Skip to content

Releases: 6eanut/abseil-cpp

abseil-cpp-20230802.0

21 Aug 07:50
Compare
Choose a tag to compare
Add `absl::swap` functions for `*_hash_*` to avoid calling `std::swap`

We already have `swap(raw_hash_set&, raw_hash_set&)` thus we may expect argument dependent lookup will use that function in following code snippet:
```
absl::flat_hash_map<...> x, y;
using std::swap;
swap(x, y);
```
But in practice `std::swap` will be called because `swap(raw_hash_set&, raw_hash_set&)` requires derived-to-base conversion while `std::swap` doesn't (it is a function template), thus `std::swap` is picked by compiler.

To avoid this, we need a `swap` implementations which accept the exact `*_hash_*` types which is more preferred over `std::swap`.

Note that this will fix issues#1571.

PiperOrigin-RevId: 657419420
Change-Id: Id003b2129187ce2d4583029789ff96247d1490de

abseil-cpp-20230802.0.tar.gz

30 Jul 06:48
29bf808
Compare
Choose a tag to compare
Cherry pick CCTZ fix for MinGW (#1508)