这是C++中的聚合初始化还是默认初始化?

Des*_*tor 1 c++ initialization aggregate-initialization

考虑以下程序.

#include <iostream>
int main()
{
    int a=int{};
    std::cout<<a;
}
Run Code Online (Sandbox Code Playgroud)

它是使用聚合初始化还是默认初始化?我很迷惑.

eer*_*ika 5

空括号或大括号(T()T{})执行值初始化.例外情况是类型是聚合,在这种情况下将使用聚合初始化.由于int它不是聚合,它将被初始化值,因为它不是类也不是数组,值初始化将进行零初始化.

你想知道为什么它在C中不起作用.这样的语法在C中根本不存在,请参阅这个答案.