std::output_iterator

std::output_iterator (출력 반복자 컨셉)

input_or_output_iterator를 정제해, T가 인코딩하는 타입과 값 카테고리의 값을 쓰는 데 쓰일 수 있다는 요구사항을 추가하는 컨셉이에요. C++20부터 있어요.

출처: cppreference

본문

<iterator> 헤더에 정의돼 있어요.

template< class I, class T >
    concept output_iterator =
        std::input_or_output_iterator<I> &&
        std::indirectly_writable<I, T> &&
        requires(I i, T&& t) {
            *i++ = std::forward<T>(t); /* equality-preserving 이 요구되진 않음 */
        };

output_iterator 컨셉은 input_or_output_iterator를 정제해, T가 인코딩하는 타입과 값 카테고리의 값을 쓰는 데 쓰일 수 있다는(indirectly_writable을 통해) 요구사항을 추가해요. equality_comparable은 요구되지 않아요.

의미 요구사항

decltype((E))T인 표현식 E와 역참조 가능한 I 타입 객체 i가 있을 때, std::output_iterator<I, T>는 그것이 포함하는 모든 컨셉이 모델링되고 *i++ = E;*i = E; ++i;와 같은 효과를 가질 때에만 모델링돼요.

동등성 보존(Equality preservation)

표준 라이브러리 컨셉의 requires 표현식에 선언된 표현식은 (명시된 경우를 제외하고) 동등성 보존이 요구돼요.

더 알아보기 (Learn more)

cppreference