§8/5:Tôi cần một số trợ giúp về §8/5 trong spec
Các tùy chọn thuộc tính-specifier-seq trong một dấu-trở-type appertains đến sự trở lại chỉ kiểu. Các loại loại-id trong một trailing-return-type bao gồm chuỗi dài nhất có thể là khai báo trừu tượng s. [Lưu ý: Điều này giải quyết sự ràng buộc mơ hồ của các khai báo mảng và hàm. [Ví dụ:
auto f()->int(*)[4]; // function returning a pointer to array[4] of int // not function returning array[4] of pointer to int
-end dụ] -end note]
Các "loại-id trong một dấu-trở-type" không có ý nghĩa với tôi, đơn giản bởi vì loại trả về theo sau không chứa loại id theo ngữ pháp.
Tôi cũng không hiểu "ràng buộc mơ hồ" của khai báo mảng và chức năng. Theo như tôi có thể hiểu được
auto f() -> int*[4]; // function returning an array of 4 pointers to int
auto f() -> int(*)[4]; // function returning a pointer to an array of 4 ints
Bạn có thể đặt câu hỏi không? –
Có lẽ là * type-id * đề cập đến toàn bộ điều sau '->', vì một dấu * kiểu-specifier-seq * sinh ra/là một tập con của * type-specifier-seq * (xem C++ 11 §7.1.6/1). –
@ Cheersandhth.-Alf Tôi nghĩ điều đó đúng. Mặc dù nó khá là khó viết. –