类模板std::promise提供一种设施用以存储一个值或一个异常,之后通过std::promise对象所创建的std::future对象异步获得。注意std::promise只应当使用一次。 每个承诺体都与一个共享状态 关联,其中含有一些状态信息和一个结果,它可能尚未求值,已求值为一个值(可能为void),或者求值为一个异常。承诺可以对共享状...
std::promise<R&>特化 voidset_value(R&value); (3)(C++11 起) std::promise<void>特化 voidset_value(); (4)(C++11 起) 1-3)原子地存储value到共享状态,并使状态就绪。 4)使状态就绪。 set_value、set_exception、set_value_at_thread_exit和set_exception_at_thread_exit的操作表现类似。在更新承...
代码行4如果当前promise链接了关联状态对象,则需要在析构的时候处理关联状态对象的信息 代码行6:__state_->has_value()用来判断当前关联状态对象中是否存有异步调用结果信息(即是否被设置值或者异常信息,异常信息后面讨论);__state_->use_count()>1用来判断当前关联状态对象中是否有被其他对象关联(在此处为是否有...
promise cppreference.com Create account Page Discussion Standard revision:DiffC++98/03C++11C++14C++17C++20C++23C++26 View Edit History std::promise<R>::promise C++ Concurrency support library std::promise promise(); (1)(since C++11) template<classAlloc>...
std::promise<R>::set_value Main template voidset_value(constR&value); (1)(since C++11) voidset_value(R&&value); (2)(since C++11) std::promise<R&>specializations voidset_value(R&value); (3)(since C++11) std::promise<void>specialization ...
(3) std::promise::set_exception() 详见《异常处理》 (4) std::promise::set_value_at_thread_exit() 如字面描述,在线程退出后,将共享状态的值设定,如: (参考网站:CSDN、cppreference.com、cplusplus.com等) (参考书目:《深入理解C++11》、《深入应用C++11》等)...
std::promise - cppreference.com std::future - cppreference.com std::shared_future - cppreference.com 请注意,上述示例代码仅用于演示std::promise和std::future的基本用法,并未涉及std::shared_future。在实际应用中,你可以根据需要使用std::shared_future来共享异步操作的结果。
std::promise是一个模板类,构造时通过shared state来存储异步执行的值和异常。 template <class T> promise; template <class R&> promise<R&>; // specialization : T is a reference type (R&) template <> promise<void>; // specialization : T is void 翻了一下cppreference的介绍,std::promise 可...
(member only of promise<void> template specialization)(since C++11) 存储value进入共享状态,而不使状态立即就绪。当当前线程退出时,状态已经就绪,在所有具有线程本地存储持续时间的变量都已被销毁之后。 这个操作的行为就像set_value,,,set_exception,,,set_value_at_thread_exit,和set_exception_at_thread_exit...
-std::promise::set_value_at_thread_exit - cppreference.com -What happens to a detached thread ...