diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-01-07 15:54:41 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-01-08 00:40:26 +0100 |
commit | 4b08561bb07926eb6426376bdef6bf9e0f99bec6 (patch) | |
tree | 95441598b6fab0ec25ccced26768e1c0187b8e93 /src/corelib/tools | |
parent | daaf3b8578294dfa5e51562739acc935a148fa60 (diff) |
QPair: mark relational operators and qMakePair() conditionally noexcept
The member functions are a bit more complicated, since they require
<type_traits> support, so they're left for another commit.
Change-Id: Icb792468e35c63eb1ae97f62ed023266fb86b89b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qpair.h | 7 |
1 files changed, 7 insertions, 0 deletions
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<QPair<T1, T2> > : public QTypeInfoMerger<QPair<T1, T2>, T1, T2> template <class T1, class T2> Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(p1.first == p2.first && p1.second == p2.second)) { return p1.first == p2.first && p1.second == p2.second; } template <class T1, class T2> Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator!=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(!(p1 == p2))) { return !(p1 == p2); } template <class T1, class T2> Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator<(const QPair<T1, T2> &p1, const QPair<T1, T2> &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 <class T1, class T2> Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator>(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(p2 < p1)) { return p2 < p1; } template <class T1, class T2> Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator<=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(!(p2 < p1))) { return !(p2 < p1); } template <class T1, class T2> Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator>=(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2) + Q_DECL_NOEXCEPT_EXPR(noexcept(!(p1 < p2))) { return !(p1 < p2); } template <class T1, class T2> Q_DECL_CONSTEXPR Q_OUTOFLINE_TEMPLATE QPair<T1, T2> qMakePair(const T1 &x, const T2 &y) + Q_DECL_NOEXCEPT_EXPR(noexcept(QPair<T1, T2>(x, y))) { return QPair<T1, T2>(x, y); } |