W jakich wersjach standardu C ++ „(i + = 10) + = 10” ma niezdefiniowane zachowanie?
W C ++ następujące niezdefiniowane zachowanie:
int i = 0;
(i+=10)+=10;
W komentarzach do tego była pewna debata na ten tematmoja odpowiedź doJaki jest wynik + = w C i C ++? Subtelność polega na tym, że domyślną odpowiedzią wydaje się być „tak”, podczas gdy wydaje się, że poprawna odpowiedź brzmi „zależy od wersji standardu C ++”.
Jeśli zależy to od wersji standardu, proszę wyjaśnić, gdzie jest UB i gdzie nie jest.