template<class Arg> class OEUnaryPredicate : public OEUnaryFunction<Arg,bool>
This class represents OEUnaryPredicate.
This abstract base-class defines predicates in OEChem. Predicates are a special class of functors which, by convention, has several restriction. These restrictions make predicates predictable and reliable. To the degree possible, these restrictions are enforced by the API. OEUnaryPredicate::CreateCopy is a virtual constructor which allows copying of concrete derived objects using a reference to this base class.
By definition, a predicates is a functor which always return a boolean. By convention, the OEUnaryPredicate::operator() of a predicate does not modify the object it takes as an argument and itself is not modified by the evaluation. These conventions guarantee that the result of a series of predicate evaluations will not be order dependent.
The following methods are publicly inherited from OEUnaryFunction:
bool operator()(const Arg &a) const =0
base_type *CreateCopy() const =0
OEUnaryPredicate<Arg> *CreatePredicateCopy() const