X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbooleanevaluator.cpp;h=6891abceff9a8088db506c6ea1388664830fb4f1;hb=44c71b05ff282b3ce5a2d71c0f14eed97bfefea6;hp=074956a7a29b4cfddca039b1506eaaf30bf5dabb;hpb=c5169863e1ec3060d3bdc3b8c0317710ce8c3ee3;p=builder.git diff --git a/source/booleanevaluator.cpp b/source/booleanevaluator.cpp index 074956a..6891abc 100644 --- a/source/booleanevaluator.cpp +++ b/source/booleanevaluator.cpp @@ -3,11 +3,14 @@ using namespace std; -/* I'd rather have overloads with different slots, but that creates an -ambiguity because slots have template constructors. */ -BooleanEvaluator::BooleanEvaluator(const Function &f, bool allow_compare): +BooleanEvaluator::BooleanEvaluator(const ValueFunction &f): + func([&f](const string &value, const string *){ return f(value); }), + ops("&|!") +{ } + +BooleanEvaluator::BooleanEvaluator(const CompareFunction &f): func(f), - ops(allow_compare ? "&|!=^" : "&|!") + ops("&|!=^") { } bool BooleanEvaluator::evaluate(const string &str)