diff options
author | Abseil Team <absl-team@google.com> | 2019-08-20 11:39:40 -0700 |
---|---|---|
committer | Xiaoyi Zhang <zhangxy@google.com> | 2019-08-20 15:59:49 -0400 |
commit | f0afae0d49af3e15a7169e019634d7719143d94d (patch) | |
tree | 25923b3b33eb9c5a644fab14193195df7225401b /absl/container/internal/raw_hash_map.h | |
parent | 0e7afdcbd24c7e5b7cab4e0217d8886f1525b520 (diff) |
Export of internal Abseil changes
--
0f6565955231dc74ebad62ef32a18c457afa2dc7 by Abseil Team <absl-team@google.com>:
Document guarantee that we do not move from rvalue arguments if no insertion happens with absl::raw_hash_map::try_emplace, as done with std::unordered_map::try_emplace.
PiperOrigin-RevId: 264430409
--
292e6b9e08fa689e8400d7f2db94cbcab29d5889 by CJ Johnson <johnsoncj@google.com>:
Removes use of aligned_storage in FixedArray and InlinedVector in favor of aligned char buffers.
PiperOrigin-RevId: 264385559
--
aa0b19ad11ae5702022feee0e2e6434cfb28c9e9 by Derek Mauro <dmauro@google.com>:
Make the unit tests for absl::any, absl::optional, and absl::variant
no-ops when these types are just aliases for the corresponding std::
types. We have no way to fix standard library implementation bugs, so
don't bother working around them.
Also disable the corresponding exception-safety tests as well when
exceptions are not enabled.
Fixes https://github.com/abseil/abseil-cpp/pull/360
PiperOrigin-RevId: 264382050
--
65896a911f36481b89b4712c83b91c90a76b64e8 by Abseil Team <absl-team@google.com>:
Improve documentation on erase
PiperOrigin-RevId: 264381266
GitOrigin-RevId: 0f6565955231dc74ebad62ef32a18c457afa2dc7
Change-Id: I74b9bd2ddf84526014104f17e87de70bd3fe65fa
Diffstat (limited to 'absl/container/internal/raw_hash_map.h')
-rw-r--r-- | absl/container/internal/raw_hash_map.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/absl/container/internal/raw_hash_map.h b/absl/container/internal/raw_hash_map.h index 6a9c730c..7dad120a 100644 --- a/absl/container/internal/raw_hash_map.h +++ b/absl/container/internal/raw_hash_map.h @@ -109,6 +109,9 @@ class raw_hash_map : public raw_hash_set<Policy, Hash, Eq, Alloc> { return insert_or_assign(k, v).first; } + // All `try_emplace()` overloads make the same guarantees regarding rvalue + // arguments as `std::unordered_map::try_emplace()`, namely that these + // functions will not move from rvalue arguments if insertions do not happen. template <class K = key_type, class... Args, typename std::enable_if< !std::is_convertible<K, const_iterator>::value, int>::type = 0, |