diff options
Diffstat (limited to 'src/lib/netlist/plib/ptime.h')
-rw-r--r-- | src/lib/netlist/plib/ptime.h | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/lib/netlist/plib/ptime.h b/src/lib/netlist/plib/ptime.h index 839b8e95dbd..655fb84caeb 100644 --- a/src/lib/netlist/plib/ptime.h +++ b/src/lib/netlist/plib/ptime.h @@ -117,32 +117,40 @@ namespace plib return ptime(m_time / rhs); } - friend constexpr bool operator<(const ptime &lhs, const ptime &rhs) noexcept + template <typename O> + friend constexpr bool operator<(const ptime &lhs, const ptime<O, RES> &rhs) noexcept { - return (lhs.m_time < rhs.m_time); + static_assert(ptime_le<ptime<O, RES>, ptime>::value, "Invalid ptime type"); + return (lhs.m_time < rhs.as_raw()); + //return (lhs.m_time < rhs.m_time); } - friend constexpr bool operator>(const ptime &lhs, const ptime &rhs) noexcept + template <typename O> + friend constexpr bool operator>(const ptime &lhs, const ptime<O, RES> &rhs) noexcept { return (rhs < lhs); } - friend constexpr bool operator<=(const ptime &lhs, const ptime &rhs) noexcept + template <typename O> + friend constexpr bool operator<=(const ptime &lhs, const ptime<O, RES> &rhs) noexcept { return !(lhs > rhs); } - friend constexpr bool operator>=(const ptime &lhs, const ptime &rhs) noexcept + template <typename O> + friend constexpr bool operator>=(const ptime &lhs, const ptime<O, RES> &rhs) noexcept { return !(lhs < rhs); } - friend constexpr bool operator==(const ptime &lhs, const ptime &rhs) noexcept + template <typename O> + friend constexpr bool operator==(const ptime &lhs, const ptime<O, RES> &rhs) noexcept { return lhs.m_time == rhs.m_time; } - friend constexpr bool operator!=(const ptime &lhs, const ptime &rhs) noexcept + template <typename O> + friend constexpr bool operator!=(const ptime &lhs, const ptime<O, RES> &rhs) noexcept { return !(lhs == rhs); } |