Не определено ли, что представляет собой неудачная инициализация статических переменных длительности хранилища блока или потока?

После ответа на этот вопрос и не найдя удовлетворяющего ответа в стандартном документе, я задумался. В стандарте говорится следующее об инициализации упомянутых переменных:

§6.7 [stmt.dcl] p4

[...] В противном случае такая переменная инициализируется в первый раз, когда управление проходит через ее объявление; такая переменная считается инициализированной по завершении ее инициализации. Если инициализация завершается выбросом исключения, то инициализация не завершена, поэтому она будет повторена при следующем прохождении управления через объявление.

Не упоминается, что может вызвать повторную попытку инициализации, если она завершилась не выбросом исключения (longjmp(), thead exit, сигналы и т.д.).

Упустил ли я что-нибудь из виду в стандарте? Я снова и снова просматривал пункты об инициализации, объявлении и исключениях и даже обратился к CWG defects table of content с быстрым поиском по слову "static", но не смог найти ничего связанного.

Является ли это недоопределением (и как таковой дефект) в стандарте?

7
задан Community 23 May 2017 в 12:17
поделиться