Я пытаюсь инициализировать массив вложенных структур.
Вот что я делаю:
// init a nested struct
struct L1 {
struct L2 {
int i[4];
} l2[3];
};
L1::L2 l2 = {1,2,3,4};
L1::L2 l2_a[] = { {1,2,3}, {1,2}, {1,2,3,4}};
L1 l1 = {
{{1,2,3}, {1,2}, {1,2,3,4}}
};
L1 l1_a0 = {};
L1 l1_a1 = {0};
L1 l1_a[] = {
{{1,2,3}, {1,2}, {1,2,3,4}},
{{1,2,3}, {1,2}, {1,2,3,4}}
}; // ... error: too many initializers for 'L1'
В соответствии с тем, что происходит правильно выше, я ожидаю, что последняя полученная строка (инициализация массива вложенной структуры) будет правильной, но, к моему удивлению, компилятору это не нравится.
Можно ли это сделать вообще? Вот соответствующий пост об инициализации вложенных структур. Кстати, я использую g ++.