1 #include "position.hpp"
10 Position::Position (int initial_position)
11 : major_(initial_position)
14 // Intentionally Empty
17 bool Position::operator== (const Position& rhs) const
19 return (major_ == rhs.major_) && (minor_ == rhs.minor_);
22 bool Position::operator!= (const Position& rhs) const
24 return ! (*this == rhs);
27 Position& Position::operator+= (const float rhs)
30 int minor = (int)((rhs - major) * 10);
35 /* Check for overflow */
45 Position& Position::operator-= (const float rhs)
52 bool Position::operator< (const Position& rhs) const
54 if (major_ < rhs.major_)
57 if (major_ == rhs.major_)
58 if (minor_ < rhs.minor_)
64 bool Position::operator> (const Position& rhs) const
66 if (major_ > rhs.major_)
69 if (major_ == rhs.major_)
70 if (minor_ > rhs.minor_)
76 Position Position::operator- (const Position& rhs) const
80 int major = major_ - rhs.major_;
81 int minor = minor_ - rhs.minor_;
83 /* Check for underflow */
96 Position::operator float() const
101 temp += minor_ / 10.0;
106 std::ostream& operator<< (std::ostream& os, const Position& rhs)
108 os << "Position(" << rhs.major_ << "." << rhs.minor_ << ")";
112 /* vim: set ts=4 sts=4 sw=4 noexpandtab textwidth=112: */