Я пытаюсь написать безопасный код исключения. Я считаю, что использование спецификатора noexcept С++ 11 делает эту цель намного более достижимой.
Общая идея, конечно, состоит в том, что функция должна быть помечена как "noexcept", если и только если все функции, которые она вызывает, также отмечены как "noexcept".
Проблема заключается в том, что в большой базе кода, где исправления от разных людей часто объединяются вместе, трудно гарантировать, что эта согласованность сохраняется.
Итак, я хотел бы иметь возможность запускать статический анализ, который мог бы отображать все места, где функция, отмеченная "nothrow", вызывает функцию, которая не помечена как "nothrow".
Насколько я могу видеть на man-странице, GCC мне не поможет. Существуют ли какие-либо автономные инструменты, которые могут мне помочь? Или, может быть, некоторые другие компиляторы?