std::coroutine_handle<Promise>:: operator(), std::coroutine_handle<Promise>:: resume
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Coroutine traits | ||||
|
(C++20)
|
||||
| Coroutine handle | ||||
|
(C++20)
|
||||
| No-op coroutines | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Trivial awaitables | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Range generators | ||||
|
(C++23)
|
| Member functions | ||||
| Conversion | ||||
| Observers | ||||
| Control | ||||
|
coroutine_handle::operator()
coroutine_handle::resume
|
||||
| Promise access | ||||
| Export/import | ||||
| Non-member functions | ||||
| Helper classes | ||||
|
다른 특수화의 멤버
|
||
|
void
operator
(
)
(
)
const
;
void resume ( ) const ; |
(1) | (C++20부터) |
std::coroutine_handle<std::noop_coroutine_promise>
특수화의 멤버
|
||
|
constexpr
void
operator
(
)
(
)
const
noexcept
;
constexpr void resume ( ) const noexcept ; |
(2) | (C++20부터) |
이 동작은 * this 가 일시 중단된 코루틴을 참조하지 않거나, 코루틴이 no-op 코루틴이 아니면서 최종 일시 중단 지점에서 일시 중단된 경우 정의되지 않습니다. 코루틴의 동시 재개는 데이터 경쟁을 초래할 수 있습니다.
코루틴이 중단된 실행 에이전트와 다른 실행 에이전트에서 재개되는 것은 구현에서 정의된 동작을 가집니다. 단, 각 실행 에이전트가
std::thread
나
std::jthread
로 표현되는 스레드이거나
main
을 실행하는 스레드인 경우는 예외입니다.
목차 |
매개변수
(없음)
반환값
(없음)
예외
코루틴 실행 중 예외가 발생하면, 해당 예외는 포착되어 코루틴의 promise 객체에서
unhandled_exception
이 호출됩니다.
unhandled_exception
호출 시 예외를 throw하거나 rethrow하는 경우, 해당 예외가 전파됩니다.
참고 사항
다른 실행 에이전트에서 재개되는 코루틴은 일시 중단 지점을 가로질러 뮤텍스 객체를 보유하는 것과 같이 일관된 스레드 식별성에 의존하는 것을 피해야 합니다.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
참고 항목
|
코루틴을 파괴합니다
(public member function) |