Насколько я знаю, в С++ STD не определено (поведение undefined), как компилируемое приложение должно обрабатывать ситуации, когда одна разделяемая библиотека вызывает исключение внутри другого [shared lib]. Код, созданный g++/Linux, показывает, что можно создавать исключения между разделяемыми библиотеками.
Мои вопросы:
- Он переносимый (MSVS)?
- В каких случаях общая библиотека
A
не сможет обрабатывать исключение из общей библиотекиB
? [Я имею в виду, что приложение потерпит крах; библиотекаA
знает о возможных исключениях изB
]. - Является ли поведение обработки исключений в моем примере зависимым от компоновщика?