are thrown by a function inside
  <code class="filename">libstdc++.so</code>, so whether the thrown
  exception uses the old <code class="classname">std::ios_base::failure</code> type
  or the new one depends on the ABI that was active when
  <code class="filename">libstdc++.so</code> was built,
  <span class="emphasis"><em>not</em></span> the ABI active in the user code that is using
  iostreams.
  This means that for a given build of GCC the type thrown is fixed.
  In current releases the library throws a