cppreference.comによると、にstd::ios_base::failureは2つの継承階層があります。

質問
なぜ、そして何が違うのですか?
バックグラウンド
g ++ 4.7.1を使用すると、このエラーが発生しました。これまでのところ、最初の継承階層が原因であることがわかっています。
エラー:'const class std :: ios_base::failure'には'code'という名前のメンバーがありません
アップデート
gccを使用すると、C++11モードでもios_base::failureから継承します。ここexceptionから引用:
ios_base::failureはsystem_errorから派生していません。