<QtSwap> Proxy Page

函数

void qSwap (T & lhs , T & rhs )

函数文档编制

[constexpr noexcept(...)] template <typename T> void qSwap ( T & lhs , T & rhs )

Exchanges the values of variables lhs and rhs , taking type-specific swap() overloads into account.

This function is Qt's version of boost::swap() , and is equivalent to

using std::swap;   // bring std::swap into scope (for built-in types)
swap(lhs, rhs);    // unqualified call (picks up type-specific overloads
                   // via Argument-Dependent Lookup, or falls back to std::swap)
					

Use this function primarily in generic code, where you would traditionally have written the above two lines, because you don't know anything about T .

If you already know what T is, then use one of the following options, in order of preference:

  • lhs.swap(rhs); if such a member-swap exists
  • std::swap(lhs, rhs); if no type-specific swap() exists

boost::swap() on boost.org 了解更多细节。

另请参阅 std::swap on cppreference.com , Swappable on cppreference.com .

注意: This function does not throw any exception when "noexcept(QtPrivate::SwapExceptionTester::checkSwap(value1))" is true.