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