QPair: add member-swap
std::pair has it, too. Change-Id: I2526b09455db5502ad38a81f3d401098d54614a5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
597a71fa99
commit
daaf3b8578
@ -62,10 +62,22 @@ struct QPair
|
|||||||
{ first = std::move(p.first); second = std::move(p.second); return *this; }
|
{ first = std::move(p.first); second = std::move(p.second); return *this; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Q_DECL_RELAXED_CONSTEXPR void swap(QPair &other)
|
||||||
|
Q_DECL_NOEXCEPT_EXPR(noexcept(qSwap(other.first, other.first)) && noexcept(qSwap(other.second, other.second)))
|
||||||
|
{
|
||||||
|
// use qSwap() to pick up ADL swaps automatically:
|
||||||
|
qSwap(first, other.first);
|
||||||
|
qSwap(second, other.second);
|
||||||
|
}
|
||||||
|
|
||||||
T1 first;
|
T1 first;
|
||||||
T2 second;
|
T2 second;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename T1, typename T2>
|
||||||
|
void swap(QPair<T1, T2> &lhs, QPair<T1, T2> &rhs) Q_DECL_NOEXCEPT_EXPR(noexcept(lhs.swap(rhs)))
|
||||||
|
{ lhs.swap(rhs); }
|
||||||
|
|
||||||
// mark QPair<T1,T2> as complex/movable/primitive depending on the
|
// mark QPair<T1,T2> as complex/movable/primitive depending on the
|
||||||
// typeinfos of the constituents:
|
// typeinfos of the constituents:
|
||||||
template<class T1, class T2>
|
template<class T1, class T2>
|
||||||
|
@ -116,6 +116,31 @@
|
|||||||
\sa qMakePair()
|
\sa qMakePair()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn void QPair::swap(QPair &other)
|
||||||
|
\since 5.5
|
||||||
|
|
||||||
|
Swaps this pair with \a other.
|
||||||
|
|
||||||
|
Equivalent to
|
||||||
|
\code
|
||||||
|
qSwap(this->first, other.first);
|
||||||
|
qSwap(this->second, other.second);
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
Swap overloads are found in namespace \c std as well as via
|
||||||
|
argument-dependent lookup (ADL) in \c{T}'s namespace.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn void swap(QPair<T1, T2> &lhs, QPair<T1, T2> &rhs)
|
||||||
|
\overload
|
||||||
|
\relates QPair
|
||||||
|
\since 5.5
|
||||||
|
|
||||||
|
Swaps \a lhs with \a rhs.
|
||||||
|
*/
|
||||||
|
|
||||||
/*! \fn bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
|
/*! \fn bool operator==(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)
|
||||||
|
|
||||||
\relates QPair
|
\relates QPair
|
||||||
|
Loading…
Reference in New Issue
Block a user