std::istream_iterator 연산자

std::istream_iterator 연산자 (operator== 등)

std::istream_iterator가 같은지(둘 다 end-of-stream이거나 같은 스트림을 가리키는지) 확인하는 연산자들이에요.

출처: cppreference

본문

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

// (1)
template< class T, class CharT, class Traits, class Dist >
bool operator==( const std::istream_iterator<T, CharT, Traits, Dist>& lhs,
                 const std::istream_iterator<T, CharT, Traits, Dist>& rhs );

// (2) C++20까지
template< class T, class CharT, class Traits, class Dist >
bool operator!=( const std::istream_iterator<T, CharT, Traits, Dist>& lhs,
                 const std::istream_iterator<T, CharT, Traits, Dist>& rhs );

// (3) C++20부터
friend bool operator==( const istream_iterator& i, std::default_sentinel_t );

lhsrhs가 모두 같은지 확인해요. 두 스트림 반복자는 둘 다 end-of-stream 반복자이거나 같은 스트림을 가리키면 같아요.

    1. lhsrhs와 같은지 확인해요.
    1. lhsrhs와 다른지 확인해요(C++20까지).
    1. lhs가 end-of-stream 반복자인지 확인해요(C++20부터). 이 함수는 일반적인 비한정·한정 조회로는 보이지 않고, ADL로만 찾을 수 있어요.

반환값

    1. lhs가 end-of-stream이면 rhs도 end-of-stream일 때, 아니면 lhs.stream == rhs.stream.
    1. 1의 부정.
    1. i가 end-of-stream 반복자일 때 true.

더 알아보기 (Learn more)

cppreference