From ae301626ddd8288bd58d67dfb7b2a660740001b0 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 9 Feb 2016 19:10:38 +0200 Subject: Implement ==, != operators for dependency class --- brep/package | 6 ++++++ brep/package.cxx | 12 ++++++++++++ tests/load/driver.cxx | 36 ------------------------------------ 3 files changed, 18 insertions(+), 36 deletions(-) diff --git a/brep/package b/brep/package index e23dfd6..5360623 100644 --- a/brep/package +++ b/brep/package @@ -315,6 +315,12 @@ namespace brep std::ostream& operator<< (std::ostream&, const dependency&); + bool + operator== (const dependency&, const dependency&); + + bool + operator!= (const dependency&, const dependency&); + #pragma db value class dependency_alternatives: public vector { diff --git a/brep/package.cxx b/brep/package.cxx index cb7ab46..7bdc3c7 100644 --- a/brep/package.cxx +++ b/brep/package.cxx @@ -37,6 +37,18 @@ namespace brep return o; } + bool + operator== (const dependency& x, const dependency& y) + { + return x.name () == y.name () && x.constraint == y.constraint; + } + + bool + operator!= (const dependency& x, const dependency& y) + { + return !(x == y); + } + // package // package:: diff --git a/tests/load/driver.cxx b/tests/load/driver.cxx index 006f14c..539c50d 100644 --- a/tests/load/driver.cxx +++ b/tests/load/driver.cxx @@ -25,42 +25,6 @@ using namespace odb::core; using namespace butl; using namespace brep; -// @@ Rather add this to optional in libbutl! See: -// -// http://en.cppreference.com/w/cpp/experimental/optional/operator_cmp - -namespace butl -{ - template - static inline auto - operator== (const optional& a, const optional& b) -> - decltype (*a == *b) - { - return !a == !b && (!a || *a == *b); - } -} - -// @@ Add it to libbpkg/libbrep rather! -// -namespace bpkg -{ - static inline bool - operator== (const dependency_constraint& a, const dependency_constraint& b) - { - return a.min_version == b.min_version && a.max_version == b.max_version && - a.min_open == b.min_open && a.max_open == b.max_open; - } -} - -namespace brep -{ - static inline bool - operator== (const dependency& a, const dependency& b) - { - return a.name () == b.name () && a.constraint == b.constraint; - } -} - static bool check_location (shared_ptr& p) { -- cgit v1.1