std:: weakly_incrementable
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<iterator>
|
||
|
template
<
class
I
>
concept weakly_incrementable
=
|
(C++20부터) | |
/*is-signed-integer-like*/
의 정의에 대해서는
is-integer-like
를 참조하십시오.
이 개념은 전위 및 후위 증가 연산자로 증가시킬 수 있는 타입에 대한 요구사항을 명시하지만, 이러한 증가 연산이 반드시 equality-preserving 일 필요는 없으며, 타입 자체가 std::equality_comparable 일 필요도 없습니다.
std::weakly_incrementable
타입의 경우,
a
==
b
가
++
a
==
++
b
를 의미하지는 않습니다. 약증가 가능 타입에 대한 알고리즘은 단일 패스 알고리즘으로 구현되어야 합니다. 이러한 알고리즘들은
std::istream_iterator
를 통해 입력 데이터의 소스로 istream을 사용할 수 있습니다.
의미론적 요구사항
타입
I
의 객체
i
에 대해,
I
가 다음의 모든 조건을 만족할 때에만
std::weakly_incrementable
를 모델합니다:
- 표현식 ++ i 과 i ++ 은 동일한 도메인을 가집니다.
- 만약 i 가 증가 가능하다면, ++ i 와 i ++ 모두 i 를 증가시킵니다.
- 만약 i 가 증가 가능하다면, std:: addressof ( ++ i ) == std:: addressof ( i ) 입니다.
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| P2325R3 | C++20 |
default_initializable
요구됨
|
요구되지 않음 |
참고 항목
|
(C++20)
|
weakly_incrementable
타입에 대한 증가 연산이
등식 보존
이며 해당 타입이
equality_comparable
임을 명시함
(concept) |