std::input_or_output_iterator

std::input_or_output_iterator (입력·출력 반복자 컨셉)

반복자 분류(iterator taxonomy)의 기초가 되는 컨셉이에요. 모든 반복자 타입이 input_or_output_iterator 요구사항을 만족해요. C++20부터 있어요.

출처: cppreference

본문

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

template< class I >
    concept input_or_output_iterator =
        requires(I i) {
            { *i } -> /*can-reference*/;
        } &&
        std::weakly_incrementable<I>;

input_or_output_iterator 컨셉은 반복자 분류의 기초를 이뤄요. exposition-only 컨셉 /*can-reference*/는 타입이 void(cv-한정 포함)가 아닐 때에만 만족돼요.

참고

input_or_output_iterator 자체는 반복자의 역참조·증가 연산만 명세해요. 대부분의 알고리즘은 추가 연산을 요구해요. 예를 들어:

  • 센티널로 반복자 비교하기 — sentinel_for
  • 반복자에서 값 읽기 — indirectly_readable, input_iterator
  • 반복자에 값 쓰기 — indirectly_writable, output_iterator
  • 더 풍부한 반복자 이동 — forward_iterator, bidirectional_iterator, random_access_iterator, contiguous_iterator

더 알아보기 (Learn more)

cppreference