3
據cppreference.com,std::ios_base::failure
有兩個繼承層次:爲什麼std :: ios_base :: failure有兩個繼承圖,有什麼區別?
問題
爲什麼,是什麼區別?
背景
使用G ++ 4.7.1我遇到了這個錯誤,所以據我所知,這是因爲第一個繼承層次:
error: 'const class std::ios_base::failure' has no member named 'code'
UPDATE
使用gcc,即使在C++ 11模式下,ios_base::failure
仍然繼承自exception
。從here報價:
ios_base::failure is not derived from system_error.
可以在[C++ 11](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf)標準的27.5.3.1.1發現它 – tumdum 2012-07-30 05:37:20
啊,有道理,我有點驚訝g ++ 4.7.1還沒有實現它。 – 2012-07-30 05:37:33
@JesseGood:你用'-std = C++ 11'編譯? – Xeo 2012-07-30 05:42:28