Здравствуйте, Andrew S, Вы писали:
AS>С т.з. VC __declspec(nothrow) говорит не о том, что функция не будет выбрасывать исключений для внешнего кода (что можно проверить, указав это для функции и убедиться, что код обработки исключений из внешнего кода не исчезает), а о том, что внутри функции не выбрасываются исключения, если иное не следует явно. И внутри функции, промаркированной как throw() как раз код обработки исключений в этом случае отсутствует.
Да, ты прав. Но это не отменяет того, что я сказал — выбрасывать SEH исключения она все равно может.
>gcc же, напротив, по спецификатору noexcept считает во внешнем коде, что вызываемая функция не кидает исключений и убирает обработчик из внешнего кода.