Я прочитал этот ответ о поведении undefined, где увидел следующий оператор:
++++++i; // UB, parsed as (++(++(++i)))
Я не думаю, что это поведение undefined. У меня есть сомнения, действительно ли это UB на С++? Если да, то как?
Кроме того, я сделал программу и скомпилировал ее с помощью команды g++ prog.cpp -Wall -Wextra -std=gnu++1z -pedantic
, она отлично работает без предупреждения. Он дает ожидаемый результат.
#include <iostream>
using namespace std;
int main()
{
int i = 0;
cout<<++++++i<<endl;
}