While gcc may support some sort of extension to C++, it is generally advisable to avoid compiler- and platform-specific extensions wherever possible.
Use the standard C++ syntax for array initialization:
int array[10] = { 0, 1, 2, 0, 0, 0, 0, 0, 0, 9 };
Or write a function to do the initialization of specific elements:
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();
Or use a lambda expression:
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;
})();