Bei folgendem Funktionsaufruf:
f(g(), h())
Könnte eine Implementierung theoretisch g()
und h()
parallel ausgeführt werden, da die Reihenfolge der Auswertung von Funktionsargumenten nicht angegeben ist (soweit mir bekannt ist dies in C ++ 11 immer noch der Fall) ?
Eine solche Parallelisierung konnte nur eingesetzt werden, g
und es war h
bekannt, dass sie ziemlich trivial war (im offensichtlichsten Fall nur auf lokale Daten zuzugreifen), um keine Parallelitätsprobleme zu verursachen, aber über diese Einschränkung hinaus kann ich nichts sehen, was dies verbietet .
Erlaubt der Standard dies? Auch wenn nur nach der Als-ob-Regel?
(In dieser Antwort behauptet Mankarse etwas anderes; er zitiert jedoch nicht den Standard, und mein Durchlesen von [expr.call]
hat keinen offensichtlichen Wortlaut ergeben.)