Инициализирует все поля структуры POD до 0.
Обоснование:
const SomeStruct init = {Value};
Инициализирует первое поле SomeStruct в Value, остальная часть структуры в ноль (я забыл раздел в стандарте, но он где-то есть)
Таким образом:
const SomeOtherStruct init = {{Value}};
Инициализирует первое поле первого поля структуры (где первое поле структуры само является структурой POD) в значение, а остальное первое поле - в ноль, а остальная часть структуры - в 0.
Кроме того, это не работает только потому, что c ++ запрещает неявное преобразование int
в перечисляемые типы, поэтому вы можете сделать:
const SomeOtherStruct init = {{TEnum(0)}};