Chúng ta có thể có một lớp cục bộ được định nghĩa bên trong một hàm nhưng lớp này không thể là một khuôn mẫu có chút khó chịu và không nhất quán. Có bản cập nhật nào trong tiêu chuẩn C++ 0x không?Mẫu lớp địa phương
Trả lời
Có. Trên thực tế, sự thay đổi quy tắc này là điều làm cho các biểu thức Lambda có thể xảy ra vì biểu thức Lambda tạo ra một kiểu không tên địa phương.
Xin lỗi, tôi đã đọc sai câu hỏi của bạn. Tôi nghĩ bạn đang nói về việc sử dụng một lớp địa phương như là tham số mẫu. Điều này không được phép trong C++ 98 và C++ 03 nhưng nó sẽ hoạt động trong C++ 0x.
Đối với câu hỏi thực tế của bạn, C++ 0x sẽ không thay đổi bất kỳ điều nào trong số này.
Tôi thành thật không thấy lý do nào để cho phép "mẫu lớp địa phương có chức năng". Sự hỗ trợ cho "các mẫu lớp địa phương hàm" là một tính năng mà có lẽ chỉ một số ít người quan tâm. Và viết các mẫu lớp bên ngoài các hàm là một sự thay thế có thể chấp nhận được cho việc này. Điều này rõ ràng là không đặt đủ áp lực lên các nhà cung cấp trình biên dịch cho dù phức tạp như thế nào là thực hiện một tính năng như vậy. Các nhà cung cấp trình biên dịch có thể quan tâm nhiều hơn đến việc triển khai các tính năng C++ 0x khác.
Nhưng tôi hiểu ý của bạn. Nó có vẻ như một sự bất thường không cần thiết của ngôn ngữ. Nếu bạn quan tâm sâu sắc đến tính năng này, bạn có thể viết một đề xuất chính thức và gửi nó đến ủy ban tiêu chuẩn hóa C++ trong khoảng hai năm khi họ có khả năng chấp nhận các đề xuất cho "C++ 1y".
- 1. boost :: enable_if lớp mẫu phương pháp
- 2. Mẫu phương thức mẫu cho các lớp tĩnh
- 3. Các phương thức mẫu và các lớp mẫu C++
- 4. phương pháp mẫu của lớp mẫu chuyên môn
- 5. chuyên môn về phương pháp mẫu bên trong lớp mẫu
- 6. Django mẫu và người dân địa phương lừa
- 7. Ưu điểm của các lớp địa phương Java
- 8. biến địa phương trong định nghĩa lớp/phạm vi
- 9. Sự cố truy cập ở lớp địa phương
- 10. Lớp địa phương, lớp bên trong và lớp lồng nhau có giống nhau trong C++ không?
- 11. Là một lớp học địa phương trong một phương pháp của một lớp học một người bạn của lớp này?
- 12. Buộc các địa phương Twig
- 13. Ngoài các định nghĩa mẫu khai báo cho phương thức mẫu trong lớp mẫu
- 14. Khai báo tĩnh Java cuối cùng trong phương thức lớp địa phương
- 15. Các lớp lồng ghép Java địa phương và truy cập các phương thức siêu
- 16. Triển khai lớp trừu tượng thành lớp địa phương? ưu và khuyết điểm
- 17. Macrodef và "tính địa phương"
- 18. các phương pháp ảo và các lớp mẫu
- 19. Làm thế nào để khai báo một luồng địa phương tĩnh trong một mẫu
- 20. Mục tiêu-C - Mẫu phương thức mẫu?
- 21. Sử dụng các lớp địa phương với các thuật toán STL
- 22. Cài đặt miền địa phương ghi đè Java cho miền địa phương cụ thể
- 23. Java: Địa phương hóa chuỗi tĩnh
- 24. qua chức năng như tham số mẫu phương pháp của lớp mẫu
- 25. iOS "địa phương" Push Notification
- 26. biến Constructor địa phương trong Scala
- 27. Lấy địa chỉ địa chỉ của phương thức quá tải
- 28. cách địa phương hoá kết quả địa chỉ từ reverseGeocodeLocation?
- 29. Lớp mẫu bên trong mẫu lớp trong C++
- 30. Làm thế nào để xác nhận người dân địa phương về làm mẫu trong rspec
Ngược lại, tôi không thấy lý do để không cho phép lớp mẫu cục bộ. Tôi không có ý tưởng tại sao điều này bị vô hiệu hóa trong tiêu chuẩn C++ – valdo
@ valdo: có bao giờ bạn viết một trình biên dịch? hoặc duyệt mã của trình biên dịch? Từ một điểm khả dụng, nó có thể là tốt đẹp, nhưng từ quan điểm của một nhà biên dịch, nó bổ sung thêm một số lượng phức tạp về độ phức tạp cho một chức năng thích hợp: nó không đáng giá. –
@ Matthieu M: Có thể sẽ không khó nếu bạn thiết kế nó từ đầu, nhưng về cơ bản đây là một vấn đề di sản. Phạm vi chức năng đến từ C và mã có khả năng độc lập với các không gian tên. Nhưng nếu bạn đã thực hiện các chức năng như một loại không gian tên, các tính năng như vậy sẽ đến miễn phí. – MSalters