bool branch::operator==(statement const& o) const { bool is_equal = false; statement_visitor v; v._([&](branch const* o) { is_equal = this->hint == o->hint && *this->target == *o->target; }); o.accept(v); return is_equal; }
bool store::operator==(statement const& o) const { bool is_equal = false; statement_visitor v; v._([&](store const* o) { is_equal = this->size == o->size && *this->address_ == *o->address_ && *this->rhs == *o->rhs; }); o.accept(v); return is_equal; }