From 4b08561bb07926eb6426376bdef6bf9e0f99bec6 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 7 Jan 2015 15:54:41 +0100 Subject: QPair: mark relational operators and qMakePair() conditionally noexcept The member functions are a bit more complicated, since they require support, so they're left for another commit. Change-Id: Icb792468e35c63eb1ae97f62ed023266fb86b89b Reviewed-by: Thiago Macieira --- src/corelib/tools/qpair.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/corelib/tools/qpair.h b/src/corelib/tools/qpair.h index a9f6525479..33f8c81e68 100644 --- a/src/corelib/tools/qpair.h +++ b/src/corelib/tools/qpair.h @@ -85,38 +85,45 @@ class QTypeInfo > : public QTypeInfoMerger, T1, T2> template Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator==(const QPair &p1, const QPair &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(p1.first == p2.first && p1.second == p2.second)) { return p1.first == p2.first && p1.second == p2.second; } template Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator!=(const QPair &p1, const QPair &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(!(p1 == p2))) { return !(p1 == p2); } template Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator<(const QPair &p1, const QPair &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second))) { return p1.first < p2.first || (!(p2.first < p1.first) && p1.second < p2.second); } template Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator>(const QPair &p1, const QPair &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(p2 < p1)) { return p2 < p1; } template Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator<=(const QPair &p1, const QPair &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(!(p2 < p1))) { return !(p2 < p1); } template Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator>=(const QPair &p1, const QPair &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(!(p1 < p2))) { return !(p1 < p2); } template Q_DECL_CONSTEXPR Q_OUTOFLINE_TEMPLATE QPair qMakePair(const T1 &x, const T2 &y) + Q_DECL_NOEXCEPT_EXPR(noexcept(QPair(x, y))) { return QPair(x, y); } -- cgit v1.2.3