在C ++ 11中有这样的结构:
struct von
{
std::string Name;
unsigned int ID;
std::vector<std::string> Checks;
};
是否应该像这样初始化:
von v = {"",0,{}};
或者像这样:
von v = {};
两种方式似乎都有效,但编译器在后一个示例中警告-Wmissing-field-initializers。
编辑:这是我的编译器选项:g ++ main.cpp -ansi -Wall -Wextra -Weffc ++ -std = c ++ 0x。我正在使用g ++(Debian 4.6.2-12)4.6.2
答案 0 :(得分:1)
这根本不需要initializer_list,并且与C ++ 03完全一致。编辑:(好的,对于矢量的初始化,你需要C ++ 11)在结构或数组初始化中,所有未明确给定的值都是零初始化的,所以如果这是你想要的= {};会工作得很好。