Là lambda hợp pháp sau (đa hình) hợp pháp C++ 14?Các lambdas chung với các mảng có kích thước tĩnh là các đối số
auto f = [](auto x[3]) {
x[0];
x[1];
// etc.
};
GCC và Clang 4 chấp nhận mã, nhưng Visual Studio 2017 thì không. Nó có hợp pháp không?
error C3318: 'auto [3]': an array cannot have an element type that contains 'auto'
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
@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
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