This class provides a test type for predicates returning a type that is convertible-to-bool. It makes life reasonably difficult by disabling the address-of and comma operators, but deliberately does not overload the && and || operators, as we hope the standard will be updated to no longer require such support. Once C++11 becomes available, this class would use an explicit operator bool() conversion operator, and explicitly supply the == and != operators, but we use the convertible-to-pointer-to-member idiom in the meantime. Implicitly defined operations fill out the API as needed.
Declared in <bsltf_evilbooleantype.h>
struct EvilBooleanType;
| Name | Description |
|---|---|
EvilBooleanType [constructor] | Constructors |
~EvilBooleanType [destructor] | Destroy this object. |
operator BoolResult | Return the value of this object. |
operator! | Return the newly created object having the logically negated value of this object. |
| Name | Description |
|---|---|
operator!= | Return an EvilBoolanType value that converts to true if the specified lhs and rhs do not have the same value, and a value that converts to false otherwise. Two EvilBooleanType objects do not have the same value if the values resulting from converting each to bool do not have the same value. |
operator== | Return an EvilBoolanType value that converts to true if the specified lhs and rhs have the same value, and a value that converts to false otherwise. Two EvilBooleanType objects have the same value if the values resulting from converting each to bool have the same value. |