Namespaces
Variants

std::experimental::ranges:: OutputIterator

From cppreference.net
헤더 파일에 정의됨 <experimental/ranges/iterator>
template < class I, class T >

concept bool OutputIterator =
Iterator < I > && Writable < I, T > &&
requires ( I i, T && t ) {
* i ++ = std:: forward < T > ( t ) ; // 동등성 보존이 요구되지 않음

} ;
(ranges TS)

OutputIterator 개념은 Iterator 를 정제한 것으로, T 에 의해 인코딩된 타입과 값 범주의 값을 기록하는 데 사용될 수 있다는 요구사항을 추가합니다(이는 Writable 을 통해 이루어집니다). EqualityComparable 은 필수 요구사항이 아닙니다.

E decltype ( ( E ) ) T 인 표현식이라고 하고, i I 타입의 역참조 가능한 객체라고 하자. OutputIterator<I, T> 는 다음 조건이 충족될 때만 만족된다: * i ++ = E ; 의 효과가 * i = E ; ++ i ; 와 동등해야 한다.

동등성 보존

표현식은 동일한 입력에 대해 동일한 출력을 제공하는 경우 등식 보존(equality preserving) 합니다.

  • 표현식의 입력은 피연산자들로 구성됩니다.
  • 표현식의 출력은 결과와 표현식에 의해 수정된 모든 피연산자(있는 경우)로 구성됩니다.

동등성 보존이 요구되는 모든 표현식은 추가로 안정적(stable) 이어야 합니다: 동일한 입력 객체로 이러한 표현식을 두 번 평가할 때, 해당 입력 객체에 명시적인 수정이 개입되지 않는 한 동일한 출력을 가져야 합니다.

참고 사항

C++ 표준의 출력 반복자 요구사항과 달리, OutputIterator 는 Ranges TS에서 반복자 범주 태그가 정의될 것을 요구하지 않습니다.

출력 반복자에 대한 알고리즘은 단일 패스여야 합니다.