Is there any specific reason why has support for designated initializers not been added to g++? Is the reason that C99 standards came late and g++ was developed earlier and
Accoding to http://gcc.gnu.org/c99status.html designated initializers have been already implemented.
What version of g++ do you use? (Try g++ -- version)