Все ли исключения для исключения происходят из std:: exception? Если не все они происходят из какого-то базового класса исключения?
Форсировать исключения
Ответ 1
Согласно документация boost::exception не наследует std::exception.
FAQ объясняет, почему.
Однако эта страница объясняет, как правильно использовать исключения Boost.
Ответ 2
Библиотека "good boost citizen" должна бросить с помощью boost::throw_exception, чтобы поддерживать конфигурации, в которых обработка исключений отключена.
Функция boost::throw_exception требует, чтобы тип прошедшего исключение публично публиковал из std::exception (начиная с версии 1.37.0 или около того boost::throw_exception выдаст ошибку компиляции, если это требование не будет выполнено.) Кроме того, по умолчанию исключения, испускаемые с помощью boost::throw_exception, происходят из boost::exception.
Однако для библиотек Boost нет необходимости генерировать исключения через boost:throw_exception или выводить из std::exception.
Ответ 3
Я так считаю. Нельзя думать о том, что библиотека boost генерирует что-то не-std:: исключение.