C++11 承诺与未来,为什么主退出成功?
我开始在C++11中学习promise and future,但现在我陷入了困境:C++11 承诺与未来,为什么主退出成功?,c++11,promise,future,C++11,Promise,Future,我开始在C++11中学习promise and future,但现在我陷入了困境: #include<iostream> #include<future> using namespace std; void func(future<int> &ref) { cout << ref.get(); } int main() { promise<int> prom; future<int> fu
#include<iostream>
#include<future>
using namespace std;
void func(future<int> &ref)
{
cout << ref.get();
}
int main()
{
promise<int> prom;
future<int> fut = prom.get_future();
async(launch::deferred, func, ref(fut));
prom.set_value(100);
cout << "Exiting" << endl;
}
#包括
#包括
使用名称空间std;
无效功能(未来和参考)
{
coutAdeferred
async调用只存储可调用的对象和参数
在返回的上调用.get()
之前,不会发生任何事情
您放弃了返回的future
,因此对async
的调用基本上是一个noop
没有其他东西阻止main
完成,因此…您正在将async
的结果放在地板上。因为这是一个延迟的未来,它永远不会执行func
。