std::experimental::propagate_const<T>::swap
来自 cppreference.cn
< cpp | experimental | propagate const
constexpr void swap( propagate_const & pt ) noexcept(/* see below */); |
(library fundamentals TS v2) | |
将包装的指针与 pt 的指针交换。令 t_ 表示作为包装的类指针对象的私有数据成员,则此函数等效于 swap(t_, pt.t_),其中 swap 的重载解析在 std::swap 和通过常用查找规则找到的任何声明之间执行,如 Swappable 中所述。
如果 T 的左值不满足 Swappable,则行为未定义。
[编辑] 参数
pt | - | 另一个要交换的 propagate_const 对象 |
[编辑] 异常
noexcept 规范: 异常规范中标识符 swap 的查找找到了上面描述的重载,但没有找到成员函数本身,这使得异常规范等效于 C++17 std::is_nothrow_swappable。noexcept(noexcept(swap(t_, pt.t_))) |
(library fundamentals TS v2) |
noexcept 规范:
noexcept(std::is_nothrow_swappable_v<T>) |
(library fundamentals TS v3) |
[编辑] 缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
DR | 应用于 | 发布时的行为 | 正确行为 |
---|---|---|---|
LWG 3413 | LFTSv2 | 异常规范格式不正确 | 修正为格式正确 |