D世界中是否存在来自C ++世界的未来/承诺?
当然有std.parallelism但是它没有完全承诺/未来组合的功能(没有相当于获得未来或设置结果或异常,你也不能等待完成)。
答案 0 :(得分:2)
我相信你没有认真看待std.parallelism
...相当于“获得未来”(如果你的意思是std::future
的get()方法)是yieldForce(), spinForce()和workForce()。仔细阅读这些内容,您会发现可以等待完成......
std :: future :: get()等到将来有一个有效的结果并且(取决于使用的模板)检索它。这正是yieldForce所做的。
关于例外......你在哪里看到你不能得到例外? 从std.parallelism页面:如果尚未启动任务,请在当前线程中执行它。如果已完成,则返回其返回值(如果有)。如果它正在进行中,请等待条件变量。 如果它抛出异常,请重新抛出该异常。
std.parallelism“遭受”不试图复制C ++和/或Java,来自这些社区的人总是期望事情像他们习惯的那样(在那里,做到了)。
有人纠正了我,但是std.parallelism在std :: future和std :: promise之前发布了,对吗?