Namespaces
Variants

std::generator<Ref,V,Allocator>::iterator

ko.cppreference.net 참조
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (C++20부터 사용 중단)
정수 비교 함수
(C++20)(C++20)(C++20)    
(C++20)
Swap 및 타입 연산
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
공통 어휘 타입
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
코루틴 지원
코루틴 특성
코루틴 핸들
무연산 코루틴
사소한 대기 가능 객체
범위 생성기
(C++23)
 
Ranges 라이브러리
범위 어댑터
 
 
class /*iterator*/;
(설명 전용*)

generator::begin의 반환 타입. indirectly_readable 및 input_iterator를 모델로 한다.

멤버 타입

멤버 정의
value_type std::generator::value
difference_type std::ptrdiff_t

데이터 멤버

멤버 설명
std::coroutine_handle<std::generator::promise_type> coroutine_ 코루틴 핸들
(설명 전용 멤버 객체*)

멤버 함수

반복자를 생성함
(public member function)
다른 반복자를 할당함
(public member function)
기본 값을 반환함
(public member function)
반복자를 진행시킴
(public member function)

std::generator:: iterator :: iterator

/*iterator*/ ( /*iterator*/ && other ) noexcept ;
(C++23 이후)

coroutine_ 를 std:: exchange ( other. coroutine_ , { } ) ; 로 초기화합니다.

std::generator:: iterator :: operator=

/*iterator*/ & operator = ( /*iterator*/ && other ) noexcept ;
(C++23부터)

다음 코드와 동일합니다: coroutine_ = std:: exchange ( other. coroutine_ , { } ) ; .

반환값: * this .

std::generator:: iterator :: operator*

reference operator * ( ) const
noexcept ( std:: is_nothrow_copy_constructible_v < reference > ) ;
(C++23 이후)
  1. reference 를 std::generator 의 기반 타입으로 둡니다.
  2. 어떤 generator 객체 x 에 대해, 그 coroutine_ 가 스택 * x. active_ 에 있다고 둡니다.
  3. x. active_ - > top ( ) 가 promise 객체 p 를 가진 일시 중단된 코루틴을 참조한다고 둡니다.

다음 코드와 동등합니다: return static_cast < reference > ( * p. value_ ) ; .

std::generator:: iterator :: operator++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (since C++23)
constexpr void operator ++ ( int ) ;
(2) (since C++23)
1) 어떤 generator 객체 x 에 대해 coroutine_ 가 스택 * x. active_ 에 있다고 가정합니다.
다음 코드와 동등합니다: x. active_ - > top ( ) . resume ( ) .
반환값: * this .
2) 다음 코드와 동등합니다: ++* this ; .

비멤버 함수

(C++23)
기본 반복자를 센티넬과 비교
(함수)

operator== (std::generator:: iterator )

friend bool operator == ( const /*iterator*/ & i, std:: default_sentinel_t ) ;
(C++23부터)

return i. coroutine_ . done ( ) ; 와 동등합니다.

!= 연산자는 합성된 operator== 로부터 생성됩니다.

이 함수는 일반적인 비한정 이름查找 또는 한정 이름查找 에는 보이지 않으며, std::generator:: iterator 가 인자들의 연관 클래스일 때만 인자 종속查找 에 의해 찾을 수 있습니다.

예제