问题描述
是否存在不存在const
并影响任何C ++标准库算法或容器的并发性的示例?如果没有,是否有任何理由不允许以这种方式使用const
-ness?
为了澄清,我假设并发const
对对象的并发访问是无数据争用的,这在包括GotW 6在内的多个地方都被提倡。
类推,移动操作的noexcept
形式会影响std::vector
的方法(例如resize
)的性能。
我浏览了几种C ++ 17并发算法,希望找到一个例子,但是我什么也没找到。 transform
不要之类的算法要求unary_op
或binary_op
函数对象为const
。我确实发现for_each
对于原始的非执行策略版本采用了MoveConstructible
函数对象,对于C ++ 17执行策略版本采用了copyConstructible
函数对象;我认为这可能是一个示例,在该示例中,程序员被迫基于是否可以安全复制功能对象(const
操作)来选择一个或另一个...但是目前,我怀疑此要求是刚好可以支持返回类型(UnaryFunction
和void
)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)