Reihenfolge bei der Ausgabe mit cout
-
Wieso ist folgende Ausgabe nicht eindeutig?
Wieso geben manche Compiler 3, 2, 1 aus?So wie ich den C++Standard verstehe, dürfte dies eigentlich nicht sein. Der Operator << ist linksassoziativ und die Auswertung der Funktionsaufrufe sollte daher auch klar definiert von links nach rechts geschehen. Scheint aber nicht so zu sein (ähnlich wie bei Funktionsargumenten)!
#include <iostream> int te() { static int k = 0; return ++k; } int main() { std::cout << " " << te() << ", " << te() << ", " << te() << std::endl; return 0; }
-
Hatten wir das nicht heute schon Mal? http://www.c-plusplus.net/forum/viewtopic-var-t-is-254501.html