Throwing std::ios_base::failure on formatted input with gcc 6.2

Jonathan Wakely jwakely.gcc@gmail.com
Wed Oct 26 11:48:00 GMT 2016


On 26 October 2016 at 12:45, Edward Diener wrote:
> 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 ?

There are two versions of std::ios::failure, one using the old ABI
(called std::ios_base::failure) and one using the new ABI (called
std::ios_base::[abi:__cxx11]failure).

You're trying to catch the new one, but the library throws the old
one. I'm probably going to change the library to throw the new one for
GCC 7.



More information about the Gcc-help mailing list