什么是大括号或等于初始值设定项?

what is a brace-or-equals initializer?

我知道这个问题很简单,但是太简单了,我找不到任何资源来定义什么是 "brace-or-equals"。

这些都是大括号或等号初始化程序吗?

++++++++++++++++++++++++++++++++++++++

int foo= 42;

int foo{42};

int foo= {42};

int foo[]{41,42,43};

int foo[]={41,42,43};

struct Foo{
    int data= 42;
};

考虑到上述结构,data初始化或未初始化,在两种情况下:

Foo foo{42}
Foo foo= {42}
Foo foo{.data=42}
Foo foo= {.data=42}

++++++++++++++++++++++++++++++++++++++

字面意思就是它在罐头上所说的:形式为 = something ("equals") 或 { something } ("brace") 的初始值设定项。换句话说,它排除了 ( something ) 形式的初始值设定项。

名称来自构造的语法非终结符。