nothrow-input-range, nothrow-forward-range, nothrow-bidirectional-range, no-throw-input-range, nothrow-random-access-range, nothrow-sized-random-access-range
cppreference.net에서 발췌
template< class R >
concept /*nothrow-input-range*/ =
ranges::range<R> &&
/*nothrow-input-iterator*/<ranges::iterator_t<R>> &&
/*nothrow-sentinel-for*/<ranges::sentinel_t<R>, ranges::iterator_t<R>>;
|
(1) | (설명 전용*) |
template< class R >
concept /*nothrow-forward-range*/ =
/*nothrow-input-range*/<R> &&
/*nothrow-forward-iterator*/<ranges::iterator_t<R>>;
|
(2) | (설명 전용*) |
template< class R >
concept /*nothrow-bidirectional-range*/ =
/*nothrow-forward-range*/<R> &&
/*nothrow-bidirectional-iterator*/<ranges::iterator_t<R>>;
|
(3) | (C++26부터) (설명 전용*) |
template< class R >
concept /*nothrow-random-access-range*/ =
/*nothrow-bidirectional-range*/<R> &&
/*nothrow-random-access-iterator*/<ranges::iterator_t<R>>;
|
(4) | (C++26부터) (설명 전용*) |
template< class R >
concept /*nothrow-sized-random-access-range*/ =
/*nothrow-random-access-range*/<R> && ranges::sized_range<R>;
|
(5) | (C++26부터) (설명 전용*) |
이 설명 전용 콘셉들은 범위에 대한 특수화된 <memory> 알고리즘에 필요한 연산에서 예외가 발생하지 않음을 명시합니다.
/*nothrow-input-iterator*/, /*nothrow-forward-iterator*/, /*nothrow-bidirectional-iterator*/ 및 /*nothrow-random-access-iterator*/의 정의는 이 페이지를 참조하십시오.
의미 요구 사항
1)
R 유형이 nothrow-input-range 를 모델링하는 것은 ranges::begin 및 ranges::end를 R 유형의 객체에 호출할 때 예외가 발생하지 않는 경우에만 가능합니다.5)
R 유형이 nothrow-sized-random-access-range 를 모델링하는 것은 ranges::size를 R 유형의 객체에 호출할 때 예외가 발생하지 않는 경우에만 가능합니다.참고
이 콘셉들은 범위에 대한 일부 연산에서 예외를 던지는 것을 허용합니다.
같이 보기
(C++20) |
유형이 범위임을 지정합니다. 즉, begin 반복자와 end 센티널을 제공합니다. (콘셉) |
(C++20) |
범위가 상수 시간에 자신의 크기를 알고 있음을 지정합니다. (콘셉) |
(C++20)(C++23)(C++20)(C++23) |
범위의 반복자 및 센티널 유형을 얻습니다. (별칭 템플릿) |