В настоящее время я работаю с устаревшим кодом на С++, успешно скомпилированным с gcc 2.9.X.
Мне было предложено перенести этот код устаревшего на gcc 3.4.X. Большинство ошибок были легко исправлены, но этот вопрос меня озадачил.
Контекст:
struct TMessage
{
THeader header;
TData data;
};
struct THeader
{
TEnum myEnum;
TBool validity;
};
Что было сделано:
const TMessage init = {{0}};
/* Later in the code ... */
TMessage message = init;
Мой вопрос (ы):
В чем смысл оператора {{}}? Инициализирует ли первое поле (заголовок) двоичное значение 0? Инициализирует ли первое поле первой структуры (перечисление) значение (литерал) 0?
Ошибка 3.4.6, которую я получаю, составляет invalid conversion from 'int' to 'TEnum'
, либо с одной, либо с двумя парами фигурных скобок.
Как я могу установить свою структуру в группу из 0 без использования memset?
Спасибо заранее.