常数会影响并发算法吗?

问题描述

是否存在不存在const并影响任何C ++标准库算法或容器的并发性的示例?如果没有,是否有任何理由不允许以这种方式使用const-ness?

为了澄清,我假设并发const对对象的并发访问是无数据争用的,这在包括GotW 6在内的多个地方都被提倡。

类推,移动操作的noexcept形式会影响std::vector方法(例如resize)的性能

我浏览了几种C ++ 17并发算法,希望找到一个例子,但是我什么也没找到。 transform 不要之类的算法要求unary_opbinary_op函数对象为const。我确实发现for_each对于原始的非执行策略版本采用了MoveConstructible函数对象,对于C ++ 17执行策略版本采用了copyConstructible函数对象;我认为这可能是一个示例,在该示例中,程序员被迫基于是否可以安全复制功能对象(const操作)来选择一个或另一个...但是目前,我怀疑此要求是刚好可以支持返回类型(UnaryFunctionvoid)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)