The official blog of VC++ team说:“VC ++ 2013 RTM将支持C99指定的初始值设定项。”
但是,VC ++ 2013 RC拒绝了以下代码:
struct A
{
int a;
double b;
A() = default; // OK as promised
virtual ~A() = default; // OK as promised
A(const A&) = delete; // OK as promised
};
int main()
{
A a = { .b = 3.14159 }; // Error! It is NOT as promised!
}
答案 0 :(得分:3)
从您关联的同一页面引用:
Herb还宣布,为了响应客户的要求,RTM版本在编译C代码时还包含一些战术 C99 语言扩展 ,以便一些流行的社区库(包括FFmpeg)现在可以使用Visual C ++ 2013进行编译。
因此指定的初始值设定项仅在C代码中,而不在C ++代码中。我看到A
是用C ++语法定义的,其中: - )