BloombergLP::bsltf::EvilBooleanType

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.

Synopsis

Declared in <bsltf_evilbooleantype.h>

struct EvilBooleanType;

Member Functions

NameDescription
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.

Non-Member Functions

NameDescription
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.