c++ 如何将整数初始化为“a = {1,}”?

我发现这个奇怪的语法:

int a = {1,};

它可以在我尝试过的所有编译器中运行.它如何编译?

编辑:我认为标量初始化器只能有一个元素,产生我的问题.对不起,所有的烦恼.

如Matt McNab在评论中所述,支持的初始化列表的语法是相同的,无论您是否使用它来初始化标量或其他任何内容.

C 11§5.17规定

A braced-init-list may appear on the right-hand side of

  • an assignment to a scalar, in which case the initializer list shall have at most a single element.

braced-init-list的定义是(来自§8.5):

braced-init-list:
  { initializer-list ,opt }
  { }

“opt”表示尾部的逗号是可选的.

翻译自:https://stackoverflow.com/questions/27220074/how-does-initializing-an-integer-as-a-1-compile

转载注明原文:c++ 如何将整数初始化为“a = {1,}”?