Sieht aus, als ob wir eine ganze neue Art von "Interviewfragen" für C++ bekommen (ich hoffe nicht, eigentlich).Was wird i ++ + i ++ in C++ 17 bewerten?
Es ist bekannt, undefiniertes Verhalten vor C++ 17, sondern wird es gut definierte von C++ 17 weiter sein?
Da scheint im Moment nicht ein Compiler, der diese C++ 17 Änderung implementiert, kann jemand erklären, was wird, nach Ausdruck Bewertungsregeln, der Wert von x
im folgenden Code sein?
int i = 0;
int x = i++ + i++;
Alisdair Meredith erwähnt dieses Beispiel here in seinem CppCon 2016 zu sprechen, aber es ist nicht ganz klar zu mir, was der Endwert x
sein wird (obwohl es was zu sagen scheint er ist, dass es zumindest sein werde 1).
Offensichtlich wird i
selbst in diesem Fall 2 am Ende des Ausdrucks sein.
Sie könnten z.B. [diese Sequenzierungs- und Bewertungsreihenfolge] (http://en.cppreference.com/w/cpp/language/eval_order). –
@LeoHeinsaar Scheint, wir müssen unsere Reflexe in Zukunft anpassen ... –
@ πάνταῥεῖ Ich verstehe, mach dir keine Sorgen. Es ist alles in Ordnung. :-) –