std::experimental::propagate_const<T>:: swap
From cppreference.net
<
cpp
|
experimental
|
propagate const
|
constexpr
void
swap
(
propagate_const
&
pt
)
noexcept
(
/* 见下文 */
)
;
|
(库基础技术规范 v2) | |
将包装的指针与
pt
的指针进行交换。令
t_
表示作为包装指针类对象的私有数据成员,则此函数等效于
swap
(
t_, pt.
t_
)
,其中对
swap
的重载解析将在
std::swap
与通过常规查找规则找到的任何声明之间进行,具体如
Swappable
中所述。
若
T
的左值不满足
可交换
要求,则行为未定义。
参数
| pt | - |
另一个用于交换的
propagate_const
对象
|
异常
|
noexcept
规范:
在异常规范中对标识符
noexcept
(
noexcept
(
swap
(
t_, pt.
t_
)
)
)
swap
的查找会找到上述描述的重载版本,而不会找到成员函数本身,这使得该异常规范等价于 C++17 的
std::is_nothrow_swappable
。
|
(库基础技术规范 v2) |
|
noexcept
规范:
noexcept
(
std::
is_nothrow_swappable_v
<
T
>
)
|
(库基础技术规范 v3) |
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 修正后行为 |
|---|---|---|---|
| LWG 3413 | LFTSv2 | 异常规范格式不正确 | 修正为格式正确 |