Как видно на этой ссылке
clang в режиме C ++ 14 (но не в C ++ 17) и GCC в режиме C ++ 17 выдают предупреждения о последовательности. Я предположил, что в C ++ 17 все вещи в правой части = оцениваются до lhs, поэтому я не уверен, правильно ли предупреждение gcc.
Code is:
static int index =0;
void f(int* pindex){
pindex[index] = 5;
pindex[index] = index++;
}
int main(){
}
Предупреждение gcc:
: In function 'void f(int*)'::4:30: warning: operation on 'index' may be undefined [-Wsequence-point]:4:30: warning: operation on 'index' may be undefined [-Wsequence-point]4 | pindex[index] = index++; | ~~~~~^~
Компилятор вернул: 0
примечание: я знаю, что в стандарте ничего не говорится о предупреждениях, просто гораздо проще задать вопрос относительно предупреждений, чем говорить о гарантиях точки последовательности / порядка.
pindex[index++] = index;
выдает такое же предупреждение - person darune   schedule 07.07.2020