Browse Source

Revise Utils::Version comparison operators

adaptive-webui-19844
Chocobo1 4 years ago
parent
commit
4d1d5d6b20
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 20
      src/base/utils/version.h

20
src/base/utils/version.h

@ -133,19 +133,15 @@ namespace Utils @@ -133,19 +133,15 @@ namespace Utils
return (*this != ThisType {});
}
constexpr bool operator==(const ThisType &other) const
// TODO: remove manually defined operators and use compiler generated `operator<=>()` in C++20
friend bool operator==(const ThisType &left, const ThisType &right)
{
return (m_components == other.m_components);
return (left.m_components == right.m_components);
}
constexpr bool operator<(const ThisType &other) const
friend bool operator<(const ThisType &left, const ThisType &right)
{
return (m_components < other.m_components);
}
constexpr bool operator>(const ThisType &other) const
{
return (m_components > other.m_components);
return (left.m_components < right.m_components);
}
template <typename StringClassWithSplitMethod>
@ -198,6 +194,12 @@ namespace Utils @@ -198,6 +194,12 @@ namespace Utils
return !(left == right);
}
template <typename T, std::size_t N, std::size_t Mandatory>
constexpr bool operator>(const Version<T, N, Mandatory> &left, const Version<T, N, Mandatory> &right)
{
return (right < left);
}
template <typename T, std::size_t N, std::size_t Mandatory>
constexpr bool operator<=(const Version<T, N, Mandatory> &left, const Version<T, N, Mandatory> &right)
{

Loading…
Cancel
Save