Похоже, мы получаем совершенно новую породу "вопросов интервью" для С++ (надеюсь, на самом деле нет).
Известно, что поведение undefined до С++ 17, но будет ли оно корректно определено из С++ 17?
Поскольку на данный момент не существует компилятора, который реализует эту модификацию С++ 17, может ли кто-нибудь объяснить, что будет, в соответствии с правилами оценки выражения, значением x
быть в следующем коде?
int i = 0;
int x = i++ + i++;
Alisdair Meredith упоминает этот пример здесь в своем разговоре CppCon 2016, но мне не совсем понятно, что будет последним значением x
(хотя кажется он говорит, что это будет как минимум 1).
Очевидно, что сам i
в этом случае будет равен 2 в конце выражения.