19template <
class MatchFuncArgType,
class DataFuncArgType = MatchFuncArgType,
20 bool needsConversion =
false>
22 :
public EqualityQuery<MatchFuncArgType, DataFuncArgType, needsConversion> {
29 this->df_negate =
false;
35 this->df_negate =
false;
38 bool Match(
const DataFuncArgType what)
const override {
39 MatchFuncArgType mfArg =
41 if (
queryCmp(this->d_val, mfArg, this->d_tol) < 0) {
42 return !this->getNegation();
44 return this->getNegation();
62 std::ostringstream res;
63 res << this->getDescription();
64 res <<
" " << this->d_val;
65 if (this->getNegation()) {
a Query implementing ==: arguments must match a particular value (within an optional tolerance)
void setTol(MatchFuncArgType what)
sets our tolerance
void setVal(MatchFuncArgType what)
sets our target value
class to allow integer values to pick templates
a Query implementing < using a particular value (and an optional tolerance)
bool Match(const DataFuncArgType what) const override
returns whether or not we match the argument
std::string getFullDescription() const override
returns a fuller text description
LessQuery(DataFuncArgType v, DataFuncArgType t)
constructs with our target value and a tolerance
Query< MatchFuncArgType, DataFuncArgType, needsConversion > * copy() const override
returns a copy of this Query
LessQuery(DataFuncArgType v)
constructs with our target value
Base class for all queries.
void setDataFunc(MatchFuncArgType(*what)(DataFuncArgType))
sets our data function
void setNegation(bool what)
sets whether or not we are negated
std::string d_description
#define RDKIT_QUERY_EXPORT
int queryCmp(const T1 v1, const T2 v2, const T1 tol)