aboutsummaryrefslogtreecommitdiff
path: root/odb/option-types.hxx
diff options
context:
space:
mode:
authorConstantin Michael <constantin@codesynthesis.com>2011-10-10 14:14:49 +0200
committerConstantin Michael <constantin@codesynthesis.com>2011-10-21 11:47:13 +0200
commit73caec68f1e8dc2bd2b9a045bdecdc2cc4f25348 (patch)
treea7957e61ade526f232f5ec77dee5605ffc972724 /odb/option-types.hxx
parentc29c8d56300d2b834b5e3dac998a893877b7c902 (diff)
Correct oracle_version comparison operations
Diffstat (limited to 'odb/option-types.hxx')
-rw-r--r--odb/option-types.hxx63
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&