C++11 Правильная инициализация структуры

Имея такую ​​структуру в C++11:

struct von
{
    std::string Name;
    unsigned int ID;
    std::vector<std::string> Checks;
};

Должно ли оно быть инициализировано так:

    von v = {"",0,{}};

Или вот так:

    von v = {};

Кажется, что оба способа работают, но компилятор предупреждает о -Wmissing-field-initializer в последнем примере.

Изменить: Вот мои параметры компилятора: g++ main.cpp -ansi -Wall -Wextra -WeffC++ -std= C++0x. Я использую g++ (Debian 4.6.2-12) 4.6.2

1 ответ

Решение

Это вообще не требует initializer_list и прекрасно работает с C++03. Редактировать: (Хорошо, для инициализации вектора вам нужен C++11) При инициализации структуры или массива все не явно заданные значения инициализируются нулями, так что если это то, что вы хотите = {}; будет работать просто отлично.

Другие вопросы по тегам