Changes imported from Abseil "staging" branch:
- 95e20a66bfa6104937ec92722b04a9c0ca0443dc Make ThrowingBool convertible to bool. by Xiaoyi Zhang <zhangxy@google.com> GitOrigin-RevId: 95e20a66bfa6104937ec92722b04a9c0ca0443dc Change-Id: I7a1dcb53b0764b24482ee1886276b267c8cb83c2
This commit is contained in:
parent
2661ed4998
commit
eed36bfba0
2 changed files with 18 additions and 3 deletions
|
@ -203,12 +203,12 @@ extern exceptions_internal::NoThrowTag no_throw_ctor;
|
|||
inline void SetCountdown() { exceptions_internal::countdown = 0; }
|
||||
inline void UnsetCountdown() { exceptions_internal::countdown = -1; }
|
||||
|
||||
// A test class which is contextually convertible to bool. The conversion can
|
||||
// be instrumented to throw at a controlled time.
|
||||
// A test class which is convertible to bool. The conversion can be
|
||||
// instrumented to throw at a controlled time.
|
||||
class ThrowingBool {
|
||||
public:
|
||||
ThrowingBool(bool b) noexcept : b_(b) {} // NOLINT(runtime/explicit)
|
||||
explicit operator bool() const {
|
||||
operator bool() const { // NOLINT(runtime/explicit)
|
||||
exceptions_internal::MaybeThrow(ABSL_PRETTY_FUNCTION);
|
||||
return b_;
|
||||
}
|
||||
|
@ -355,6 +355,8 @@ class ThrowingValue : private exceptions_internal::TrackedObject {
|
|||
}
|
||||
|
||||
// Comparison Operators
|
||||
// NOTE: We use `ThrowingBool` instead of `bool` because most STL
|
||||
// types/containers requires T to be convertible to bool.
|
||||
friend ThrowingBool operator==(const ThrowingValue& a,
|
||||
const ThrowingValue& b) {
|
||||
exceptions_internal::MaybeThrow(ABSL_PRETTY_FUNCTION);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue