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.