22.9 Predicates as a subset of Functors

Obviously, there is no strict requirement that all functors must return boolean values. In fact, there is a series of classes in OEChem called OEFunctions. They are predefined to be OEUnaryFunction and OEBinaryFunction. They have template arguments for both the return types and argument types and their operator() functions are not necessarily const functions. OEPredicates inherit from OEFunctions.