https://www.securecoding.cert.org/confluence/display/cplusplus/ERR58-CPP.+Constructors+of+objects+with+static+or+thread+storage+duration+must+not+throw+exceptions says:
Exceptions thrown in destructors of objects with static storage duration or in
constructors of namespace scope objects with static storage duration are not
caught by a function-try-block on main() . Exceptions thrown in destructors of
objects with thread storage duration or in constructors of namespace-scope
objects with thread storage duration are not caught by a function-try-block on
the initial function of the thread.
Function scope static objects are constructed when required by the function, so
exceptions can be caught from main().
Change cert-err58-cpp check to not apply to function/method scope objects.
Update tests.