在回答了这个问题而没有在标准文件中找到令人满意的答案后,我开始疑惑.该标准规定了以下wrt初始化提到的变量:
§6.7 [stmt.dcl] p4
[...]否则这个变量在第一次控制通过其声明时被初始化; 这样的变量在初始化完成后被认为是初始化的.如果通过抛出异常退出初始化,则初始化未完成,因此下次控制进入声明时将再次尝试初始化.
没有提到可能导致初始化被重试的情况,如果除了抛出异常之外的其他任何事情都失败了(longjmp()thead退出,信号等等).
我是否忽略了标准中的任何内容?我一遍又一遍地查看初始化,声明和异常条款,甚至通过快速搜索"静态"来查询CWG缺陷表,但找不到任何相关内容.
这是标准中的一个不明确的(并且作为这样的缺陷)吗?