Designated initializers were unofficially supported by GCC (and clang IIANM) since around when C++11 was supported. See:
https://godbolt.org/z/3aKaa7dnM
only if you specifically ask to get an error, would you actually get it.