gcc初始化POD类型

时间:2014-02-24 13:34:46

标签: c++ gcc

我正在使用gcc 4.8.1,我对它处理POD /聚合初始化有疑问。我所拥有的是一些简单的类C结构:

struct S { //.... };

,没有任何用户定义的默认构造函数。

但由于-Wall -Wextra被设置为编译,使用如下语法:

S s = {};

S s; s = {};

生成警告,例如:

warning: missing initializer for member 'one-of-S-members' [-Wmissing-field-initializers

同事正在使用如下语法:

S s = S();

S s; s = S();

而且,这对我来说完全是个惊喜:

  1. 没有警告
  2. 更令人困惑的是,正确地初始化结构就像聚合语法一样。
  3. 所以问题是 - 这是一些特定于gcc的怪癖吗?

    代码使用-std = c ++ 11

    进行编译

0 个答案:

没有答案