我发现这个奇怪的语法:
int a = {1,};
Run Code Online (Sandbox Code Playgroud)
它适用于我尝试过的所有编译器.它是如何编译的?
编辑:我认为标量初始化器只能有一个元素,产生我的问题.对不起,所有的烦恼.
har*_*mic 15
正如Matt McNab在评论中所述,无论您是使用它来初始化标量还是其他任何内容,支撑初始化列表的语法都是相同的.
C++11§5.17陈述
braced-init-list可能出现在右侧
- 标量的赋值,在这种情况下,初始化列表最多只能包含一个元素.
braced-init-list的定义是(来自§8.5):
braced-init-list:
{ initializer-list ,opt }
{ }
其中'opt'表示尾随逗号是可选的.