flat_hash_map.h
26.4 KB
-
Add `absl::swap` functions for `*_hash_*` to avoid calling `std::swap` · 13ec8d5d
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 Team committed