C++11 承诺与未来,为什么主退出成功?

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

我开始在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> fut = prom.get_future();
    async(launch::deferred, func, ref(fut));
    prom.set_value(100);
    cout << "Exiting" << endl;
}
#包括
#包括
使用名称空间std;
无效功能(未来和参考)
{

coutA
deferred
async调用只存储可调用的对象和参数

在返回的上调用
.get()
之前,不会发生任何事情

您放弃了返回的
future
,因此对
async
的调用基本上是一个noop


没有其他东西阻止
main
完成,因此…

您正在将
async
的结果放在地板上。因为这是一个延迟的未来,它永远不会执行
func