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) При инициализации структуры или массива все не явно заданные значения инициализируются нулями, так что если это то, что вы хотите = {}; будет работать просто отлично.