Хотя gcc может поддерживать какое-то расширение для C ++, обычно рекомендуется по возможности избегать специфичных для компилятора и платформы расширений.
Используйте стандартный синтаксис C ++ для инициализации массива:
int array[10] = { 0, 1, 2, 0, 0, 0, 0, 0, 0, 9 };
Или напишите функцию для инициализации определенных элементов:
std::array<int, 10> create_initialized_array()
{
std::array<int, 10> values = { 0 };
values[1] = 1;
values[2] = 2;
values[9] = 9;
return values;
}
std::array<int, 10> array = create_initialized_array();
Или используйте лямбда-выражение:
std::array<int, 10> array = ([]() -> std::array<int, 10>
{
std::array<int, 10> values = { 0 };
values[1] = 1;
values[2] = 2;
values[9] = 9;
return values;
})();