inline bool operator<(ReactionRule const& lhs, ReactionRule const& rhs) { int tmp = memberwise_compare(lhs.get_reactants(), rhs.get_reactants()); if (tmp > 0) { return false; } else if (tmp < 0) { return true; } return memberwise_compare(lhs.get_products(), rhs.get_products()) < 0; }
bool operator>(twofold_container const& rhs) const { return memberwise_compare(*this, rhs) > 0; }
bool operator==(ReactionRecord const& rhs) const { return reaction_rule_id_ == rhs.reaction_rule_id() && memberwise_compare(reactants_, rhs.reactants_) == 0 && memberwise_compare(products_, rhs.products_) == 0; }
inline bool operator==(ReactionRule const& lhs, ReactionRule const& rhs) { return lhs.get_reactants() == rhs.get_reactants() && memberwise_compare(lhs.get_products(), rhs.get_products()) == 0; }