std::experimental::propagate_const<T>:: swap
|
constexpr
void
swap
(
propagate_const
&
pt
)
noexcept
(
/* see below */
)
;
|
(라이브러리 fundamentals TS v2) | |
래핑된 포인터를
pt
의 포인터와 교환합니다.
t_
를 래핑된 포인터와 유사한 객체인 private 데이터 멤버로 지정하면, 이 함수는
swap
(
t_, pt.
t_
)
와 동등하며, 여기서
swap
에 대한 오버로드 해결은
std::swap
과 일반적인 조회 규칙에 따라 발견된 모든 선언들 사이에서 수행됩니다. 이는
Swappable
에 설명된 바와 같습니다.
T의 lvalue가
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 | 예외 명세가 잘못 구성됨 | 올바르게 구성됨 |