在C++ 11中有这样的结构:
struct von
{
std::string Name;
unsigned int ID;
std::vector<std::string> Checks;
};
Run Code Online (Sandbox Code Playgroud)
它应该像这样初始化:
von v = {"",0,{}};
Run Code Online (Sandbox Code Playgroud)
或者像这样:
von v = {};
Run Code Online (Sandbox Code Playgroud)
两种方式似乎都有效,但编译器在后一个示例中警告-Wmissing-field-initializers.
编辑:这是我的编译器选项:g ++ main.cpp -ansi -Wall -Wextra -Weffc ++ -std = c ++ 0x.我正在使用g ++(Debian 4.6.2-12)4.6.2
这根本不需要initializer_list 并且可以与C++03 完美配合。编辑:(好吧,对于向量的初始化,您需要 C++11)在结构体或数组初始化中,所有未显式给定的值均为零初始化,因此如果这就是您想要的 = {}; 会工作得很好。