no-throw-input-iterator , no-throw-forward-iterator , no-throw-sentinel-for , no-throw-input-range , no-throw-forward-range
|
template
<
class
I
>
개념 no
-
throw
-
input
-
iterator
=
|
(1) | ( 설명 전용* ) |
|
template
<
class
I
>
개념 no
-
throw
-
forward
-
iterator
=
|
(2) | ( 설명 전용* ) |
|
template
<
class
S,
class
I
>
concept no - throw - sentinel - for = std:: sentinel_for < S, I > ; |
(3) | ( 설명 전용* ) |
|
template
<
class
R
>
concept no
-
throw
-
input
-
range
=
|
(4) | ( 설명 전용* ) |
|
template
<
class
R
>
concept no
-
throw
-
forward
-
range
=
|
(5) | ( 설명 전용* ) |
이러한 설명 전용 개념들은 반복자, 센티넬 및 범위에 대한 알고리즘에서 요구되는 연산들로부터 예외가 발생하지 않음을 명시합니다.
no-throw-input-iterator
개념은 반복자를 역참조할 때
contiguous_iterator
와
LegacyForwardIterator
와 같이 lvalue를 반환해야 함을 요구합니다.
의미론적 요구사항
표준 개념들 모두와 마찬가지로, 여기에 나열된 모든 개념은 그것이 포함하는 모든 개념이 모델링된 경우에만 모델링됩니다.
I
가
no-throw-input-iterator
를 모델링하려면 유효한 반복자를 통한 증가, 복사 생성, 이동 생성, 복사 할당, 이동 할당, 간접 참조에서 예외가 발생하지 않아야 합니다.
S
와
I
는
no-throw-sentinel-for
를 모델링합니다. 단, 타입
I
와
S
의 유효한 값들 간의 복사 생성, 이동 생성, 복사 할당, 이동 할당, 또는 비교 연산에서 예외가 발생하지 않는 경우에만 해당합니다.
R
이
no-throw-input-range
를 모델링하려면
R
타입 객체에 대한
ranges::
begin
및
ranges::
end
호출에서 예외가 발생하지 않아야 합니다.
참고 사항
이러한 개념들은 반복자와 센티널에 대한 일부 연산이 예외를 던질 수 있도록 허용합니다. 예를 들어 유효하지 않은 값에 대한 연산 등이 있습니다.
참고 항목
|
(C++20)
|
특정 타입이 입력 반복자임을 명시합니다. 즉, 참조된 값을 읽을 수 있고 전위/후위 증가가 모두 가능함
(concept) |
|
(C++20)
|
input_iterator
가 전방 반복자임을 명시하며, 동등 비교와 다중 패스를 지원함
(concept) |
|
(C++20)
|
특정 타입이
input_or_output_iterator
타입에 대한 센티넬임을 명시
(concept) |
|
(C++20)
|
반복자 타입이
input_iterator
를 만족하는 범위를 명시
(concept) |
|
(C++20)
|
반복자 타입이
forward_iterator
를 만족하는 범위를 명시
(concept) |