C++ named requirements: LegacyInputIterator
LegacyInputIterator 는 가리키는 원소로부터 읽을 수 있는 LegacyIterator 입니다. LegacyInputIterator 는 단일 패스(single pass) 알고리즘에 대해서만 유효성을 보장합니다: LegacyInputIterator i 가 증가된 이후에는, 이전 값의 모든 복사본이 무효화될 수 있습니다.
목차 |
요구사항
| 유형 | 정의 |
X
|
입력 반복자 유형 |
T
|
X
의
값 유형
(즉
std::
iterator_traits
<
X
>
::
value_type
)
|
R
|
std:: iterator_traits < X > :: reference |
| 값 | 정의 |
| i , j |
X
또는
const
X
유형의 값들
|
| r |
X&
유형의 값
|
| 기타 | 정의 |
m
|
데이터 멤버 또는 멤버 함수를 나타낼 수 있는 식별자 |
X
는 다음 조건들이 모두 충족될 때
LegacyInputIterator
를 만족합니다:
-
X는 LegacyIterator 요구 사항을 만족합니다. -
X는 EqualityComparable 요구 사항을 만족합니다. - 다음 표현식들은 올바르게 구성되어 있으며 지정된 의미를 가집니다:
| 표현식 | 타입 | 의미론 | |||||
|---|---|---|---|---|---|---|---|
| i ! = j |
|
사전 조건 | i 와 j 가 도메인 내에 있어야 함 == . | ||||
| 효과 | 다음 표현과 동등함: ! ( i == j ) . | ||||||
| * i |
R
,
T
로 변환 가능
|
사전 조건 | i 가 역참조 가능 해야 함. | ||||
| 효과 |
|
||||||
| i - > m | 사전 조건 | i 가 역참조 가능해야 함. | |||||
| 효과 | 다음 표현과 동등함: ( * i ) . m . | ||||||
| ++ r |
X&
|
사전 조건 | r 가 역참조 가능해야 함. | ||||
| 사후 조건 |
|
||||||
| ( void ) r ++ | 효과 | 다음 표현과 동등함: ( void ) ++ r . | |||||
| * r ++ |
T
로 변환 가능
|
효과 | 다음 표현과 동등함: T x = * r ; ++ r ; return x ; . | ||||
동등성 도메인
용어 the domain of == 는 일반적인 수학적 의미로 사용되어 == 를 사용하여 비교할 수 있는 값들의 집합을 나타냅니다. 이 집합은 시간에 따라 변할 수 있습니다.
각 알고리즘은 사용하는 반복자 값에 대한 동등성 영역에 추가 요구사항을 부과합니다. 이러한 요구사항은 알고리즘이 == 와 ! = 를 사용하는 방식에서 추론할 수 있습니다.
참고 사항
입력 반복자
X
가
LegacyForwardIterator
가 아닌 경우,
std::
iterator_traits
<
X
>
::
reference
는 참조 타입일 필요가 없습니다: 입력 반복자를 역참조하면 프록시 객체나
std::
iterator_traits
<
X
>
::
value_type
자체를 값으로 반환할 수 있습니다 (
std::istreambuf_iterator
의 경우처럼).
Conceptstd::iterator_traits 의 정의를 위해 다음의 설명 전용( exposition-only ) 개념이 정의됩니다.
여기서 설명 전용 개념
|
(C++20부터) |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 98 | C++98 |
*
i
++
의 반환 타입이
T
여야 했음
|
T
로 변환 가능한 모든 타입이 될 수 있음
|
|
LWG 2114
( P2167R3 ) |
C++98 |
bool
로의 변환 가능성이 구현의 기대를
반영하기에 너무 약했음 |
요구 사항이 강화됨 |
참고 항목
|
(C++20)
|
타입이 입력 반복자임을 지정합니다. 즉, 참조된 값을 읽을 수 있고 전위/후위 증가가 모두 가능함
(concept) |
| Iterator library | 반복자, 반복자 특성, 어댑터 및 유틸리티 함수에 대한 정의를 제공함 |