[#BloombergLP-bsltf-EvilBooleanType] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bsltf.adoc[bsltf]::EvilBooleanType :relfileprefix: ../../ :mrdocs: 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>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- struct EvilBooleanType; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsltf/EvilBooleanType/2constructor-02.adoc[`EvilBooleanType`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bsltf/EvilBooleanType/2destructor.adoc[`~EvilBooleanType`] [.small]#[destructor]# | Destroy this object. | xref:BloombergLP/bsltf/EvilBooleanType/2conversion.adoc[`operator BoolResult`] | Return the value of this object. | xref:BloombergLP/bsltf/EvilBooleanType/operator_not.adoc[`operator!`] | Return the newly created object having the logically negated value of this object. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bsltf/operator_not_eq-018.adoc[`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. | xref:BloombergLP/bsltf/operator_eq-0afd.adoc[`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. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#