首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tink_core未来(haxe)形式c++

tink_core未来(haxe)形式c++
EN

Stack Overflow用户
提问于 2016-01-04 13:54:46
回答 1查看 137关注 0票数 1

在哈克斯有一个名为铁皮芯的图书馆,它提供所谓的"期货“。

未来是一个尚未计算的值(例如异步操作的结果)。

除其他外,我可以用未来做以下事情:

  • 使用修改该值的函数调用map,以便使用修改后的值创建新的未来。
  • 先用两个期货调用,以创造一个新的未来,未来的价值首先结束。
  • 向将来添加一个回调,该回调将在值可用时调用。

现在在C++中有了科技促进发展:未来,但我认为上面描述的操作是不可能的。

而且,似乎只有使用std::异步才能创建std::未来。但我想以我自己的方式创造未来,而不需要函数回调。

所以我的问题是:

  • 我是不是误判了std::未来,它可以做到这一切吗?
  • 我还没有在c++中找到一个不同的未来库,它可以做到这一点吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-04 15:38:52

您的主要错误假设是,只有std::aysnc才能创建std::future。事实上,std::promisestd::packaged_task也这样做。

您的三个操作(映射)中的第一个操作相当简单。你基本上想要G(F(x))。这需要一个新的packaged_task,它接受第一个未来,等待其结果,然后调用F(x)上的函数G()

标准C++中的第二个操作效率很低,因为没有有效的多重等待。你得同时调查这两个未来。相比之下,Windows有WaitForMultipleObjects()

第三种基本上是第一种的变体,因为它基本上是f=F(X);G(f); return f --一旦F(X)返回,就调用F(X),但是忽略G的返回值,使用来自F(X)的原始返回值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34592739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档