If I have code asuch as: std::stringstream ss; ss.exceptions(std::ios_base::failbit | std::ios_base::badbit); char c; ss >> c;I would except an exception of std::ios_base::failure to be thrown yet gcc 6.2 is throwing some other exception. Is there a reason for this ?