This is a picky thing, and probably just my OCD, but I was wondering why the standard hierarchy of exception classes is set up as it is.
exception bad_alloc bad_cast bad_typeid bad_exception ios_base::failure runtime_error subclasses... logic_error subclasses...
Could all bad_ * exceptions be subclasses like lang_support_error? And ios_base :: failure seems completely out of place.
Are there any historical or technical reasons why the hieratic turned out to be so?
source share