C++11正确的结构初始化

C++11 Proper Structure Initialization

本文关键字:结构 初始化 C++11      更新时间:2023-10-16

在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

这根本不需要initializer_list,并且可以很好地与C++03配合使用。编辑:(好的,对于向量的初始化,你需要C++11)在结构或数组初始化中,所有未明确给定的值都是零初始化的,所以如果这是你想要的={};会很好用的。