C++ c++;11零初始化结构警告

C++ c++;11零初始化结构警告,c++,c++11,struct,initialization,C++,C++11,Struct,Initialization,我试图通过三种方式对POD(仅int32\t,char[4]等)结构(它可以包含多个POD结构)进行零初始化: struct my_struct s={}-这会给我一个-Wmissing字段初始值设定项警告 struct my_struct s{}-这会给我一个-Wmissing字段初始值设定项警告 及 struct my_struct s=my_struct()这不会生成警告 所有三个实例化都属于零初始化语法,如下所述- 为什么在前两个警告?哪个实例化可以保证初始化所有字段为0的结构,而不包含

我试图通过三种方式对POD(仅
int32\t
char[4]
等)结构(它可以包含多个POD结构)进行零初始化:

struct my_struct s={}-这会给我一个
-Wmissing字段初始值设定项
警告

struct my_struct s{}-这会给我一个
-Wmissing字段初始值设定项
警告

struct my_struct s=my_struct()这不会生成警告

所有三个实例化都属于零初始化语法,如下所述-

为什么在前两个警告?哪个实例化可以保证初始化所有字段为0的结构,而不包含任何垃圾值


编辑-我正在使用gcc(g++)4.8.4在哪个编译器上编译

?我没有得到任何警告,即使有一个特别启用。请提供一个.GCC 5不再针对这些情况发出警告。
{}
是一个空列表,而
my_struct()
是一个值初始化对象。两个不同的东西。@Barry我有gcc 4.8.4,然后是相关的。在哪个编译器上?我没有得到任何警告,即使有一个特别启用。请提供一个.GCC 5不再针对这些情况发出警告。
{}
是一个空列表,而
my_struct()
是一个值初始化对象。两件不同的事情。@Barry我有gcc 4.8.4,这是相关的。