Niektóre kompilatory C ++ zezwalają na anonimowe związki i struktury jako rozszerzenie standardowego C ++. Jest to trochę cukru syntaktycznego, który czasami jest bardzo pomocny.
Jakie jest uzasadnienie, które uniemożliwia to, aby stało się to częścią normy? Czy istnieje techniczna blokada drogowa? Filozoficzny? Czy po prostu nie ma wystarczającej potrzeby uzasadnienia tego?
Oto próbka tego, o czym mówię:
struct vector3 {
union {
struct {
float x;
float y;
float z;
};
float v[3];
};
};
Mój kompilator to zaakceptuje, ale ostrzega, że „bezimienna struktura / związek” jest niestandardowym rozszerzeniem C ++ .