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