@johnnyfp Designated initializers are pretty limited in C++ and only supported with GNU extensions and later more generally since C++20, but only for members in declaration order, no mixing of designated/non-designated, no array indices, no nesting etc (see Aggregate initialization - cppreference.com).
You can add your stuff into a C source file and can use the full extent of C90+ designated initializers, but not in C++ source files.