给定以下函数调用:
f(g(), h())
由于未指定函数参数的评估顺序(据我所知,在 C++11 中仍然如此),理论上是否可以并行执行g()
实现h()
?
这种并行化只能启动g
并且h
已知是相当微不足道的(在最明显的情况下,仅访问其身体本地的数据),以免引入并发问题,但是,超出该限制,我看不到任何禁止它的东西.
那么,标准允许吗?即使只是按照假设规则?
(在这个答案中,Mankarse 另有说法;但是,他没有引用标准,我的通读[expr.call]
也没有发现任何明显的措辞。)