คอมไพเลอร์ C ++ บางตัวอนุญาตให้ใช้สหภาพและโครงสร้างที่ไม่ระบุชื่อเป็นส่วนขยายของ C ++ มาตรฐาน มันเป็นน้ำตาลที่มีประโยชน์มากในบางครั้ง
อะไรคือเหตุผลที่ป้องกันไม่ให้สิ่งนี้เป็นส่วนหนึ่งของมาตรฐาน? มี Roadblock ทางเทคนิคหรือไม่? ปรัชญา? หรือแค่ไม่เพียงพอที่จะต้องพิสูจน์?
นี่คือตัวอย่างของสิ่งที่ฉันกำลังพูดถึง:
struct vector3 {
union {
struct {
float x;
float y;
float z;
};
float v[3];
};
};
คอมไพเลอร์ของฉันจะยอมรับเรื่องนี้ แต่ก็เตือนว่า"นิรนาม struct / ยูเนี่ยน" เป็นส่วนขยายที่ไม่ได้มาตรฐานที่ C