std::experimental::propagate_const<T>::swap
来自 cppreference.com
< cpp | experimental | propagate const
constexpr void swap( propagate_const & pt ) noexcept(/* see below */); |
(库基础 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++ 标准。
DR | 应用于 | 已发布的行为 | 正确行为 |
---|---|---|---|
LWG 3413 | LFTSv2 | 异常规范格式错误 | 格式正确 |