002
29.05.2011, 00:05 Uhr
0xdeadbeef
Gott (Operator)
|
Es gibt Sequenzpunkte nach der Auswertung aller Argumente eines Funktionsaufrufs und nach der Kopie des Rückgabewerts. Ein Objekt, dessen Methode aufgerufen wird, gilt hier als Argument. Das bedeutet: In einem Ausdruck
C++: |
foo().bar(baz()).qux();
|
werden foo() und baz() vor dem Aufruf von bar() ausgewertet, aber in welcher Reihenfolge ist nicht spezifiziert. bar wird aufgerufen, bevor qux aufgerufen wird, weil sein Rückgabewert ein Argument zu qux ist. Wann Speicher für children auf den Stack gelegt wird, ist ebenfalls nicht spezifiziert; es ist durchaus üblich, das bereits beim Eintritt in die Funktion zu tun. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |