diff options
author | Constantin Michael <constantin@codesynthesis.com> | 2011-10-10 14:14:49 +0200 |
---|---|---|
committer | Constantin Michael <constantin@codesynthesis.com> | 2011-10-21 11:47:13 +0200 |
commit | 73caec68f1e8dc2bd2b9a045bdecdc2cc4f25348 (patch) | |
tree | a7957e61ade526f232f5ec77dee5605ffc972724 | |
parent | c29c8d56300d2b834b5e3dac998a893877b7c902 (diff) |
Correct oracle_version comparison operations
-rw-r--r-- | odb/option-types.hxx | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/odb/option-types.hxx b/odb/option-types.hxx index 9d1d98c..42737f3 100644 --- a/odb/option-types.hxx +++ b/odb/option-types.hxx @@ -69,7 +69,10 @@ operator<< (std::ostream&, schema_format); // struct oracle_version { - oracle_version () {} + oracle_version (): major_ (0), minor_ (0) + { + } + oracle_version (unsigned short major, unsigned short minor) : major_ (major), minor_ (minor) { @@ -87,51 +90,49 @@ struct oracle_version return minor_; } - bool - equal (const oracle_version& x) const - { - return major_ == x.major_ && minor_ == x.minor_; - } - - bool - less (const oracle_version& x) const - { - return major_ < x.major_ || (major_ == x.major_ && minor_ < x.minor_); - } - - bool - greater (const oracle_version& x) const - { - return major_ > x.major_ || (major_ == x.major_ && minor_ > x.minor_); - } - private: unsigned short major_; unsigned short minor_; }; -bool -inline operator< (const oracle_version& x, const oracle_version& y) +inline bool +operator== (const oracle_version& x, const oracle_version& y) +{ + return x.ver_major () == y.ver_major (); +} + +inline bool +operator!= (const oracle_version& x, const oracle_version& y) +{ + return !(x == y); +} + +inline bool +operator< (const oracle_version& x, const oracle_version& y) { - return x.less (y); + return x.ver_major () < y.ver_major () || + (x.ver_major () == y.ver_major () && + x.ver_minor () < y.ver_minor ()); } -bool -inline operator> (const oracle_version& x, const oracle_version& y) +inline bool +operator> (const oracle_version& x, const oracle_version& y) { - return x.greater (y); + return x.ver_major () > y.ver_major () || + (x.ver_major () == y.ver_major () && + x.ver_minor () > y.ver_minor ()); } -bool -inline operator<= (const oracle_version& x, const oracle_version& y) +inline bool +operator<= (const oracle_version& x, const oracle_version& y) { - return !x.greater (y); + return !(x > y); } -bool -inline operator>= (const oracle_version& x, const oracle_version& y) +inline bool +operator>= (const oracle_version& x, const oracle_version& y) { - return !x.less (y); + return !(x < y); } std::istream& |