Namespaces
Variants

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

From cppreference.net
Utilities library
Coroutine support
Coroutine traits
Coroutine handle
No-op coroutines
Trivial awaitables
Range generators
(C++23)
Ranges library
Range adaptors
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 가 인자들의 연관 클래스일 때만 인자 종속查找 에 의해 찾을 수 있습니다.

예제