在论文N3784中的std::future::then
的接口包括接受执行程序的重载版本(在此更详细地在N3562中描述)作为参数。因此,如果您想要更多地控制执行回调的线程,则可以这样做。为什么执行器不再在并发TS和std :: future接口中?
但是,并发TS中的所有功能(这里是http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0159r0.html#futures.unique_future)的官方文档不包括.then()的重载,并且根本没有提及执行程序。它说
当对象的共享状态已准备就绪,延续
INVOKE(DECAY_COPY(std::forward<F>(func))
,std::move(*this))
被称为与调用DECAY_COPY()
执行不详的线程中调用那么线程进行评估。
为什么界面不能精确控制闭包的执行方式?那么如何能够控制哪个线程运行回调呢?为什么从建议的版本改变?
注意我不知道,如果并发TS文件我挂的是最新的一个,但cppreference没有任何地方提到executor
小号或者
编辑如果有人在一些C的参考或理由++标准文件提到不继续执行者的原因,那将是非常棒的!
我非常怀疑这是Stack Overflow的主题。 – Xirema
@Xirema你为什么这么说?如果标准委员会认为使用执行程序对于大多数编程用例来说是不好的设计,那么知道他们为什么这么想是很好的。 – Curious
关于投票结束我的问题,它具体涉及一个用于标准C++编程的工具,所以我不认为这个问题应该因为这个原因而关闭。 – Curious