std::future::then()和并发TS在哪里?

24
在谷歌上搜索std::future::then,排名最高的结果是关于该函数在c++17中状态的一个stack overflow问题。现在c++20已经定稿,Clang和GCC也已经开始实现c++20,我想知道该函数和并发TS的状态如何? libc ++libstdc ++或者cppreference维护的实现状态页面上都没有提到它,cppreference上的TS页面也没有说明当前状态。
我还尝试在Godbolt上运行一些非常简单的示例,但是它们都无法找到<experimental/future>,也不是因为它已经被移动到<future>头文件中(两者都无法找到future::then)。
此外,互联网并没有特别有用。至少我只能找到1-2年前的博客文章,谈论“希望”在c ++20中获得并发TS,但是在众多新c ++ 20功能概述中找不到任何提及(一些 例子

并发TS已经被放弃了吗?
1个回答

22

并发 TS 已被删除吗?

是的。

P1445 讨论了这个问题,SG1 投票撤销了该 TS。需要注意的是原子智能指针、闩锁和屏障已经在 C++20 中。

至于改进 future,目前的方向是称为“执行器(executors)”,其设计正在迭代中,它允许以一种比 future::then 更高效的方式进行工作的惰性组合。两位作者在P0443中讨论了这个问题,并在CppCon上做了演讲,很好地阐述了相关问题。


3
哎呀,太遗憾了。我一直期待着像这个演讲中描述的标准化C++未来化架构的到来,但是没有.then和.when_all(以及co_await相关支持),我想这将不得不等待。感谢您的答复! - Rasmus Damgaard Nielsen
2
所以在C++20中我们没有future::then,而在C++23中也没有执行器... - isudfv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接