std:: swappable, std:: swappable_with
|
헤더에 정의됨
<concepts>
|
||
|
template
<
class
T
>
concept swappable
=
|
(1) | (C++20부터) |
|
template
<
class
T,
class
U
>
concept swappable_with
=
|
(2) | (C++20부터) |
swappable<T>
개념은
T
타입의 lvalue가 교환 가능함을 명시합니다.
swappable_with<T, U>
개념은
T
와
U
로 인코딩된 타입과 값 범주 표현식이 서로 교환 가능함을 명시합니다.
swappable_with<T, U>
는
ranges::
swap
(
t, u
)
호출이
t
와
u
의 값을 교환할 때만 만족됩니다. 즉,
t
와 동일한 별개 객체
t2
와
u
와 동일한 별개 객체
u2
가 주어졌을 때,
ranges::
swap
(
t, u
)
또는
ranges::
swap
(
u, t
)
평가 후,
t2
는
u
와 동일하고
u2
는
t
와 동일해야 합니다.
동등성 보존
표준 라이브러리 개념의 requires expressions 에 선언된 표현식들은 equality-preserving 해야 합니다(다르게 명시된 경우를 제외하고).
참조문헌
- C++23 표준 (ISO/IEC 14882:2024):
-
-
18.4.9 컨셉트
swappable[concept.swappable]
-
18.4.9 컨셉트
- C++20 표준(ISO/IEC 14882:2020):
-
-
18.4.9 개념
swappable[concept.swappable]
-
18.4.9 개념