Не предлагает ли C++ гарантия сохранения целостности переменных при сбое ввода? С более старыми версиями gcc такая программа сохраняет значение i при ошибке i (например, если вместо ввода на вводе введена буква). С Ubuntu 10.10 (gcc 4.4.5) i сбрасывается до нуля в случае сбоя ввода.Должен ли C++ сохранять переменные неизменными при сбое ввода?
#include <iostream>
int main()
{
int i = -1;
std::cin >> i;
std::cout << "i = " << i << '\n';
return 0;
}
Такое поведение сильно нарушает мой код. Я полагаю, что люди gcc знают, что они делают, и это, вероятно, будет моей ошибкой. Если кто-нибудь знает стандарт, я хотел бы знать, что он говорит об этой ситуации.
Спасибо.
Да, мы знаем, что мы делаем ;-) Смотрите https: //gcc.gnu.org/bugzilla/show_bug.cgi? id = 57213 –