Namespaces
Variants

std::experimental::future<T>:: future

From cppreference.net

future ( ) noexcept ;
(1)
future ( std:: experimental :: future < T > && f ) noexcept ;
(2)
future ( const std:: experimental :: future < T > & ) = delete ;
(3)
(4)
1) 기본 생성자. 공유 상태를 참조하지 않는 빈 future 객체를 생성합니다.
2) future 객체를 생성하며, f 가 보유한 공유 상태(shared state)가 있는 경우 이를 이전합니다. 생성 후 f. valid ( ) false 가 됩니다.
3) 복사 생성자가 삭제되었습니다. future 는 복사할 수 없습니다.
4) 언래핑 생성자. 공유 상태를 참조하는 future 객체를 other 로부터 생성합니다. 이 호출 전에 other. valid ( ) == false 인 경우, 생성된 future 객체는 비어 있습니다. 그렇지 않으면, 결과 future 객체는 다음 중 하나가 발생할 때 준비 상태가 됩니다:
  • other other. get ( ) 가 모두 준비된 경우. other. get ( ) 의 값 또는 예외가 결과 future 객체와 연관된 공유 상태에 저장됩니다.
  • other 는 준비되었지만 other. get ( ) 가 유효하지 않은 경우. std::future_error 타입의 예외가 std::future_errc::broken_promise 오류 조건과 함께 결과 future 객체와 연관된 공유 상태에 저장됩니다.
이 생성자가 반환된 후, valid ( ) 는 이 호출 전 other. valid ( ) 값과 동일하며, other. valid ( ) == false 입니다.


목차

매개변수

f - 초기화할 다른 future 객체
other - unwrap할 std::experimental::future 객체

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2697 Concurrency TS unwrapping 생성자의 동작이 유효하지 않은 future 에 대해 불명확함 future 를 생성함

참고 항목

future 객체를 생성합니다
( std::future<T> 의 public member function)