diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index 026f99fd090..f8269bfe8c2 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -738,31 +738,35 @@ uint qHash(const QVector &key, uint seed = 0) } template -bool operator<(const QVector &lhs, const QVector &rhs) +auto operator<(const QVector &lhs, const QVector &rhs) noexcept(noexcept(std::lexicographical_compare(lhs.begin(), lhs.end(), - rhs.begin(), rhs.end()))) + rhs.begin(), rhs.end()))) + -> decltype(std::declval() < std::declval()) { return std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end()); } template -inline bool operator>(const QVector &lhs, const QVector &rhs) +auto operator>(const QVector &lhs, const QVector &rhs) noexcept(noexcept(lhs < rhs)) + -> decltype(lhs < rhs) { return rhs < lhs; } template -inline bool operator<=(const QVector &lhs, const QVector &rhs) +auto operator<=(const QVector &lhs, const QVector &rhs) noexcept(noexcept(lhs < rhs)) + -> decltype(lhs < rhs) { return !(lhs > rhs); } template -inline bool operator>=(const QVector &lhs, const QVector &rhs) +auto operator>=(const QVector &lhs, const QVector &rhs) noexcept(noexcept(lhs < rhs)) + -> decltype(lhs < rhs) { return !(lhs < rhs); }