Is it guaranteed that standard extraction operator>> does not change argument in case of failure?
问题 If calling something like input_stream >> i; where i is of arithmetic type, throws exception or sets badbit etc., is it guaranteed that i has not changed? 回答1: Before C++11, the value was left as it was, [reference]: If extraction fails (e.g. if a letter was entered where a digit is expected), value is left unmodified and failbit is set. (until C++11) But after C++11, no. It is set to 0 if extraction fails (same reference): If extraction fails, zero is written to value and failbit is set. If