如何将整数初始化为"a = {1,}"编译?

use*_*946 15 c++ syntax c++11

我发现这个奇怪的语法:

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'表示尾随逗号是可选的.

  • +++ 1回答_this_问题的答案不是其他问题. (5认同)
  • @remyabel:嗯,这是一个提出草案的ISO工作组...... (5认同)