Например:
#include<iostream>
using namespace std;
int main() {
int i = i=0; //no warning
cout << i << endl;
return 0;
}
Скомпилирован в vs2015 без предупреждения и вывода 0
. Является ли этот фрагмент кода хорошо определенным, хотя кажется немного странным?
Однако в этом онлайн-компиляторе (g++ prog.cc -Wall -Wextra -std=c++17
) он выдает предупреждение:
prog.cc: In function ''int main()'':
prog.cc:8:12: warning: operation on ''i'' may be undefined [-Wsequence-point]
'int i=i=0;'