<QtSwap> 代理页面

函数

voidqSwap(T &lhs, T &rhs)

函数文档

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

交换变量 lhsrhs 的值,考虑类型特定的 swap() 重载。

此函数是 Qt 对 boost::swap() 的实现,等效于

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)

主要在通用代码中使用此函数,您通常会写上面的两行,因为您对 T 一无所知。

如果您已经知道 T 代表什么,那么请选择以下选项中的一个(按优先顺序)

  • lhs.swap(rhs); 如果存在这样的成员函数交换
  • std::swap(lhs, rhs); 如果不存在类型特定的 swap()

有关更多信息,请参阅 boost::swap() 在 boost.org

另请参阅 std::swap 在 cppreference.comSwappable 在 cppreference.com

注意:当 "std::is_nothrow_swappable_v<T>" 为真时,此函数不抛出任何异常。

© 2024 The Qt Company Ltd. 本文档的贡献内容归其各自所有者所有。本文档是在自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款下提供的。Qt 及其标志是 The Qt Company Ltd. 在芬兰和/或其他全球国家的 商标。所有其他商标均为各自所有者的财产。