std::experimental::propagate_const<T>:: swap
|
constexpr
void
swap
(
propagate_const
&
pt
)
noexcept
(
/* см. ниже */
)
;
|
(техническая спецификация библиотеки fundamentals v2) | |
Обменивает обёрнутый указатель с указателем из
pt
. Пусть
t_
обозначает приватный член данных, который является обёрнутым указателем или указатель-подобным объектом, тогда эта функция эквивалентна
swap
(
t_, pt.
t_
)
, где разрешение перегрузки для
swap
выполняется среди
std::swap
и любых объявлений, найденных по обычным правилам поиска, как описано в
Swappable
.
Поведение не определено, если lvalue типа
T
не удовлетворяют требованиям
Swappable
.
Параметры
| pt | - |
другой объект
propagate_const
для обмена
|
Исключения
|
noexcept
спецификация:
Поиск идентификатора
noexcept
(
noexcept
(
swap
(
t_, pt.
t_
)
)
)
swap
в спецификации исключений находит перегрузки, описанные выше, и не находит саму функцию-член, что делает спецификацию исключений эквивалентной C++17
std::is_nothrow_swappable
.
|
(library fundamentals TS v2) |
|
noexcept
спецификация:
noexcept
(
std::
is_nothrow_swappable_v
<
T
>
)
|
(library fundamentals TS v3) |
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3413 | LFTSv2 | спецификация исключения была некорректной | исправлена |