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; }
|
||||
#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;
|
||||
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
|
||||
// typeinfos of the constituents:
|
||||
template<class T1, class T2>
|
||||
|
@ -116,6 +116,31 @@
|
||||
\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)
|
||||
|
||||
\relates QPair
|
||||
|
Loading…
Reference in New Issue
Block a user