I'm doing some work on a C++ named parameters feature, specifically labelled argument syntax design, and I've found that there is an old deprecated form of designated initialization that uses the identifier : expression syntax rather than . identifier = expression syntax.
See https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html:
Another syntax that has the same meaning, obsolete since GCC 2.5, is ‘fieldname:’, as shown here:
struct point p = { y: yvalue, x: xvalue };
I see this is still supported, but warns deprecated, in GCC and Clang codebase. (Not sure on MSVC or EDG.)
My question is: why was this deprecated and/or obsoleted ? Anyone know the history there, or how I could find out more? Or who would know more?