Export of internal Abseil changes.
-- 8f685654a7d04eb8a0cb82d31e44e391e906b609 by Derek Mauro <dmauro@google.com>: Support constexpr construction of absl::string_view from a string literal in MSVC 2017+. Fixes https://github.com/abseil/abseil-cpp/issues/352 PiperOrigin-RevId: 260853160 -- a3c4c5168ce2a491134d7c87cf7fdc75d1ee2533 by Derek Mauro <dmauro@google.com>: Make SwissTable's at() throw when exceptions are enabled Fixes https://github.com/abseil/abseil-cpp/issues/355 PiperOrigin-RevId: 260788026 GitOrigin-RevId: 8f685654a7d04eb8a0cb82d31e44e391e906b609 Change-Id: I9ed498e181faa9c9d16e9b1b01404969d99b8ea9
This commit is contained in:
parent
52e88ee56b
commit
14550beb3b
5 changed files with 35 additions and 13 deletions
|
|
@ -573,6 +573,7 @@ cc_library(
|
|||
deps = [
|
||||
":container_memory",
|
||||
":raw_hash_set",
|
||||
"//absl/base:throw_delegate",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -594,6 +594,7 @@ absl_cc_library(
|
|||
DEPS
|
||||
absl::container_memory
|
||||
absl::raw_hash_set
|
||||
absl::throw_delegate
|
||||
PUBLIC
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
#include "absl/base/internal/throw_delegate.h"
|
||||
#include "absl/container/internal/container_memory.h"
|
||||
#include "absl/container/internal/raw_hash_set.h" // IWYU pragma: export
|
||||
|
||||
|
|
@ -136,14 +137,20 @@ class raw_hash_map : public raw_hash_set<Policy, Hash, Eq, Alloc> {
|
|||
template <class K = key_type, class P = Policy>
|
||||
MappedReference<P> at(const key_arg<K>& key) {
|
||||
auto it = this->find(key);
|
||||
if (it == this->end()) std::abort();
|
||||
if (it == this->end()) {
|
||||
base_internal::ThrowStdOutOfRange(
|
||||
"absl::container_internal::raw_hash_map<>::at");
|
||||
}
|
||||
return Policy::value(&*it);
|
||||
}
|
||||
|
||||
template <class K = key_type, class P = Policy>
|
||||
MappedConstReference<P> at(const key_arg<K>& key) const {
|
||||
auto it = this->find(key);
|
||||
if (it == this->end()) std::abort();
|
||||
if (it == this->end()) {
|
||||
base_internal::ThrowStdOutOfRange(
|
||||
"absl::container_internal::raw_hash_map<>::at");
|
||||
}
|
||||
return Policy::value(&*it);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue