Một số trình biên dịch C ++ cho phép kết hợp và cấu trúc ẩn danh như một phần mở rộng cho C ++ tiêu chuẩn. Đó là một chút đường cú pháp đôi khi rất hữu ích.
Cơ sở lý luận nào ngăn điều này trở thành một phần của tiêu chuẩn? Có rào cản kỹ thuật nào không? Một triết học? Hay chỉ là không đủ nhu cầu để biện minh cho nó?
Đây là một ví dụ về những gì tôi đang nói về:
struct vector3 {
union {
struct {
float x;
float y;
float z;
};
float v[3];
};
};
Trình biên dịch của tôi sẽ chấp nhận điều này, nhưng nó cảnh báo rằng "struct / union không tên" là một phần mở rộng không chuẩn cho C ++ .