std:: indirectly_movable_storable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<iterator>
|
||
|
template
<
class
In,
class
Out
>
concept indirectly_movable_storable
=
|
(C++20 이후) | |
indirectly_movable_storable
개념은
indirectly_readable
타입과
indirectly_writable
타입 간의 관계를 명시합니다.
indirectly_movable
에 추가로, 이 개념은
indirectly_readable
타입으로부터의 이동이 중간 객체를 통해 수행될 수 있음을 명시합니다.
의미론적 요구사항
In
및
Out
모델
std
::
indirectly_movable_storable
<
In, Out
>
는 타입
In
의 역참조 가능한 값
i
가 주어졌을 때만:
-
정의 후
std::
iter_value_t
<
In
>
obj
(
ranges::
iter_move
(
i
)
)
;
,
obj는 이전에 * i 가 나타내던 값과 동일하며, -
만약
std::
iter_rvalue_reference_t
<
In
>
가 rvalue 참조 타입인 경우,
*
i
는
obj의 초기화 후 유효하지만 지정되지 않은 상태가 됩니다.
동등성 보존
표준 라이브러리 개념의 requires expressions 에 선언된 표현식들은 equality-preserving 해야 합니다(다르게 명시된 경우를 제외하고).
참고 항목
|
(C++20)
|
값들이
indirectly_readable
타입에서
indirectly_writable
타입으로 이동될 수 있음을 명시함
(concept) |
|
(C++20)
|
값들이
indirectly_readable
타입에서
indirectly_writable
타입으로 복사될 수 있으며, 복사가 중간 객체를 통해 수행될 수 있음을 명시함
(concept) |