Предположат, есть следующий код:Взаимосвязь между повышающим :: исключением и стандом :: исключением
try {
// Do some boost stuff here
}
catch (const std::exception & stdEx) {
cout << stdEx.what() << endl;
}
Вопросов:
1) Я знаю, что код работает для некоторых исключений наддува, хотя станд: : exception и boost :: exception не относятся к одному пути наследования. Почему это работает?
2) Работает ли это так для всех исключений форсирования? Другими словами, существуют ли примеры, когда обработчик boost :: exception, который находится ниже обработчика std :: exception, может быть запущен?
Не вдаваясь в код Boost, я подозреваю, что он имеет условные обозначения, которые откладываются до версий 'std' при запуске на соответствующем компиляторе, поэтому они фактически * являются * в одном пути наследования. –