У меня есть следующий код:
#include <iostream>
#include <complex>
using namespace std;
int main() {
complex<int> delta;
complex<int> mc[4] = {0};
for(int di = 0; di < 4; di++, delta = mc[di]) {
cout << di << endl;
}
return 0;
}
Я ожидаю, что он выведет "0, 1, 2, 3" и остановится, но выводит бесконечную серию "0, 1, 2, 3, 4, 5,....."
Похоже, что сравнение di<4
не работает и всегда возвращает true.
Если я просто прокомментирую ,delta=mc[di]
, я получаю "0, 1, 2, 3" как обычно. Какая проблема с невинным назначением?
Я использую Ideone.com g++ С++ 14 с опцией -O2.