Missing fixed_string comparison operators added

This commit is contained in:
Mateusz Pusz
2019-12-26 14:03:55 +01:00
parent bf5762dbbb
commit eef6371ab4

View File

@@ -103,6 +103,11 @@ struct basic_fixed_string {
return true;
}
[[nodiscard]] constexpr friend bool operator!=(const basic_fixed_string& lhs, const basic_fixed_string& rhs) noexcept
{
return !(lhs == rhs);
}
template<typename CharT2, std::size_t N2>
[[nodiscard]] constexpr friend bool operator==(const basic_fixed_string&,
const basic_fixed_string<CharT2, N2>&) noexcept
@@ -110,6 +115,13 @@ struct basic_fixed_string {
return false;
}
template<typename CharT2, std::size_t N2>
[[nodiscard]] constexpr friend bool operator!=(const basic_fixed_string&,
const basic_fixed_string<CharT2, N2>&) noexcept
{
return true;
}
template<typename CharT2, std::size_t N2>
[[nodiscard]] constexpr friend bool operator<(const basic_fixed_string& lhs,
const basic_fixed_string<CharT2, N2>& rhs) noexcept
@@ -127,6 +139,27 @@ struct basic_fixed_string {
return first1 == last1 && first2 != last2;
}
template<typename CharT2, std::size_t N2>
[[nodiscard]] constexpr friend bool operator>(const basic_fixed_string& lhs,
const basic_fixed_string<CharT2, N2>& rhs) noexcept
{
return rhs < lhs;
}
template<typename CharT2, std::size_t N2>
[[nodiscard]] constexpr friend bool operator<=(const basic_fixed_string& lhs,
const basic_fixed_string<CharT2, N2>& rhs) noexcept
{
return !(rhs < lhs);
}
template<typename CharT2, std::size_t N2>
[[nodiscard]] constexpr friend bool operator>=(const basic_fixed_string& lhs,
const basic_fixed_string<CharT2, N2>& rhs) noexcept
{
return !(lhs < rhs);
}
#endif
template<class Traits>