C11 hỗ trợ cấu trúc mang tính chất như vậy:Tại sao C++ 11 không hỗ trợ cấu trúc ẩn danh, trong khi C11 làm gì?
struct Foo
{
struct
{
size_t x, y;
};
};
struct Foo f;
f.x = 17;
f.y = 42;
Về cơ bản, các thành viên của như một struct
được đối xử như thể họ là thành viên của kèm theo struct
hoặc union
(đệ quy, nếu cấu trúc kèm theo là bản thân vô danh).
Lý do cơ bản cho C++ 11 cũng không bao gồm cấu trúc ẩn danh là gì? Chúng chỉ hữu ích một cách không phổ biến (chủ yếu là trong các công đoàn, để loại bỏ việc đánh máy mã định danh cho số struct
). Nhưng chúng dường như là một sự bổ sung đủ rõ ràng cho đặc tả (và đã được nhiều trình biên dịch thực hiện) mà chắc chắn chúng phải được thảo luận, ít nhất là để duy trì tính tương thích với tiêu chuẩn C11. Vậy tại sao họ không được thêm vào?
Tôi không đồng ý với phiếu bầu rằng câu hỏi này không mang tính xây dựng. Câu hỏi mềm hơn cũng được. – GManNickG
__Practically speaking__ hầu hết các trình biên dịch C++ 11 đều hỗ trợ các cấu trúc ẩn danh. Tôi đã sử dụng chúng trong cả hai MSVC++ (kể từ khi, bao giờ) và với trình biên dịch llvm C++ 11 của Apple. – bobobobo
MinGW cũng hỗ trợ kiến trúc/cấu trúc ẩn danh. –