在聚合的“std::initializer_list”初始化中省略嵌套大括号是否合法?

Hol*_*Cat 6 c++ initializer-list language-lawyer

考虑以下代码:

run on gcc.godbolt.org

#include <initializer_list>

struct A
{
    int x;
};

int main()
{
    std::initializer_list<A>{100};
}
Run Code Online (Sandbox Code Playgroud)

铿锵接受了。GCC 和 MSVC 拒绝它,并出现如下错误:

#include <initializer_list>

struct A
{
    int x;
};

int main()
{
    std::initializer_list<A>{100};
}
Run Code Online (Sandbox Code Playgroud)

这里哪个编译器是正确的?

我尝试查看[dcl.init.list]/5[over.match.list],但没有发现任何有趣的东西。