2017-08-27 15 views

Trả lời

9

Điều này là bất hợp pháp.

[dcl.array]/1, tôi nhấn mạnh:

Trong một tuyên bố TD trong đó D có dạng

D1 [ constant-expressionopt ] attribute-specifier-seqopt

và loại các định danh trong tờ khai T D1 là “có nguồn gốc-declarator-loại- danh sáchT ”, sau đó loại số nhận dạng của D là một loại mảng; nếu loại số nhận dạng của D chứa autoloại-specifier, chương trình không đúng định dạng.

+0

Vâng, hy vọng rằng đối với định nghĩa hàm, đây không phải là khai báo mảng, phải không? – StoryTeller

+1

@StoryTeller Nó là một khai báo mảng, mặc dù nó sẽ được chuyển thành kiểu con trỏ sau này. – cpplearner

+0

Bạn biết đấy, bạn có một điểm. Nếu bạn cố gắng xác định một mảng có kích thước âm cho tham số hàm, GCC và Clang sẽ phàn nàn. Vì vậy, điều này có vẻ như một phần mở rộng không chuẩn cho trường hợp 'tự động' một mình. – StoryTeller

Các vấn đề liên quan