Ответ Кенни уже показывает вам, как сделать эту работу.
Обратите внимание, что я бы предпочел реализовать бинарные операторы, которые одинаково обрабатывают свои операнды (они не изменяют их) как свободные функции:
inline bool operator>(const AToTime& khs, const AToTime& rhs)
{
return lhs.m_time > rhs.m_time;
}
Кроме того, обычно пользователи ожидают присутствия всех реляционных операторов, если один из них присутствует. Поскольку библиотека std в основном хочет operator<
, за исключением равенства, я бы реализовал остальные поверх operator<
:
inline bool operator<(const AToTime& khs, const AToTime& rhs)
{return lhs.m_time < rhs.m_time;}
inline bool operator>(const AToTime& khs, const AToTime& rhs)
{return rhs < lhs;}
inline bool operator<=(const AToTime& khs, const AToTime& rhs)
{return !(lhs > rhs);}
inline bool operator>=(const AToTime& khs, const AToTime& rhs)
{return !(lhs < rhs);}
inline bool operator==(const AToTime& khs, const AToTime& rhs)
{return lhs.m_time == rhs.m_time;}
inline bool operator!=(const AToTime& khs, const AToTime& rhs)
{return !(lhs.m_time == rhs.m_time);}