为什么VC ++ 2013 RC不支持C99指定的初始值设定项?

时间:2013-09-14 05:29:54

标签: c++ c visual-c++ c++11 initialization

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!
}

1 个答案:

答案 0 :(得分:3)

从您关联的同一页面引用:

  

Herb还宣布,为了响应客户的要求,RTM版本在编译C代码时还包含一些战术 C99 语言扩展 ,以便一些流行的社区库(包括FFmpeg)现在可以使用Visual C ++ 2013进行编译。

因此指定的初始值设定项仅在C代码中,而不在C ++代码中。我看到A是用C ++语法定义的,其中: - )