From 261b51998a271b8c28e68ef313dc1e9249ba4da0 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sat, 29 Aug 2015 19:14:42 +0200 Subject: [PATCH] rewrite equality on GenNode to rely on the new Predicate-Visitor --- src/lib/diff/diff.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/lib/diff/diff.cpp b/src/lib/diff/diff.cpp index 2790fc03e..ef8d1e9f2 100644 --- a/src/lib/diff/diff.cpp +++ b/src/lib/diff/diff.cpp @@ -67,13 +67,12 @@ namespace diff{ DataCap::operator== (DataCap const& o) const { class EqualityTest - : public Variant::Visitor + : public Variant::Predicate { DataCap const& o_; - bool isEqual_; #define DERIVE_EQUALITY(_TY_) \ - virtual void handle (_TY_& val) override { isEqual_ = (o_.get<_TY_>() == val); } + virtual bool handle (_TY_ const& val) override { return (o_.get<_TY_>() == val); } DERIVE_EQUALITY (int) DERIVE_EQUALITY (int64_t) @@ -93,15 +92,11 @@ namespace diff{ public: EqualityTest(DataCap const& o) : o_(o) - , isEqual_(false) { } - - operator bool() { return isEqual_; } }; EqualityTest visitor(o); - unConst(this)->accept(visitor); - return visitor; + return accept(visitor); } DataCap::operator string() const