Chạy một lambda trên phạm vi xuất cảnh có vẻ như một điều cơ bản như vậy, tôi hy vọng nó sẽ được chuẩn hóa. Những thứ như unique_ptr
là tốt hơn, khi chúng áp dụng, nhưng tôi thấy có một nguồn cung cấp vô tận của các "destructor" một lần là cần thiết, đặc biệt là khi tận dụng các thư viện kiểu C. Có ai biết nếu điều này đang đến?Có tiêu chuẩn hóa phạm vi bảo vệ phạm vi/thành phần thoát khỏi phạm vi không?
Trả lời
n4189 là một đề xuất để thêm make_scope_exit
trình bao bọc và các trình xử lý tài nguyên tương tự khác vào ngôn ngữ. Nó dựa trên sự tương tác scope_guard
tương đối nổi tiếng.
"Trạng thái giấy hiện tại" gần đây nhất từ LWG là vào năm 2013, trước ngày trên.
Nội dung của C++ 1z (hy vọng C++ 17) chưa được xác định.
C++1z status for clang không đề cập đến nó. C++1z TS for clang không đề cập đến nó.
Bản thân giấy có chứa triển khai ví dụ. Tôi không biết điều khoản cấp phép của nó là gì.
Nó [dường như đã vượt qua LEWG] (https://issues.isocpp.org/show_bug.cgi?id=6), nhưng có vẻ như nó sẽ cần từ ngữ tốt hơn trước khi nó có thể con nuôi. N4189 của từ ngữ là khá xấu. –
It would appear rằng phiên bản hiện hành của giấy xuất cảnh phạm vi, P0052, sẽ được đi sâu vào nguyên tắc cơ bản Library v3, cho làm con nuôi có khả năng trong bài C++ 17 tiêu chuẩn.
Tóm lại, sẽ không xảy ra với C++ 17. Lấy làm tiếc.
Nhận xét cuối cùng cho biết có đề xuất chuyển nó sang IS. Không thể nói liệu nó sẽ xảy ra. –
@pepper_chico IS là gì? – Jens
@Jens: Tiêu chuẩn quốc tế. Nó đã không làm cho nó, btw. –
- 1. Phạm vi liên kết phạm vi C tiêu chuẩn
- 2. javascript phạm vi bảo mật vi phạm?
- 3. Bảo vệ ứng dụng Android khỏi vi phạm bản quyền
- 4. F # trích dẫn: biến có thể thoát khỏi phạm vi
- 5. Phạm vi tư nhân, bảo vệ, và công chúng
- 6. khi nào một chuỗi thoát khỏi phạm vi?
- 7. Tiêu đề phạm vi HTTP
- 8. thoát dot trong một phạm vi regex
- 9. Khối phạm vi, phạm vi chức năng và phạm vi địa phương trong Javascript
- 10. C++ 11 phạm vi bảo vệ thoát, một ý tưởng tốt?
- 11. Chuẩn hóa trong phạm vi biến [x, y] trong Matlab
- 12. Phạm vi phủ sóng/phạm vi bảo hiểm chi nhánh được đề xuất
- 13. Phạm vi ở Erlang
- 14. Không có phạm vi phủ sóng trong 'tất cả các lớp trong phạm vi' trong Intellij
- 15. capybara - Tìm với xPath đang rời khỏi phạm vi trong phạm vi
- 16. Xóa thuộc tính khỏi biến phạm vi
- 17. Xác định phạm vi đồng bộ hóa?
- 18. java.sql.SQLException Parameter index ra khỏi phạm vi
- 19. Phạm vi mã PHPUnit
- 20. Phạm vi Laravel - chuyển 2 tham số cho phạm vi
- 21. Vi phạm bản quyền, vi phạm bản quyền, vi phạm bản quyền. Tôi có thể làm gì?
- 22. Chuỗi mảng không deallocated trên phạm vi thoát
- 23. Có một phạm vi tương đương Python (n) cho các phạm vi đa chiều không?
- 24. phá hủy chỉ thị/phạm vi con trên phạm vi tiêu diệt
- 25. Sử dụng Tiêu đề phạm vi HTTP với trình chỉ định phạm vi khác với byte?
- 26. Phạm vi của typedefs
- 27. Haskell - không trong phạm vi
- 28. Phạm vi cuộc trò chuyện có thay thế thích hợp cho phạm vi xem không?
- 29. Sự khác biệt giữa tiêu đề Phạm vi Nội dung và Phạm vi?
- 30. PHP, xem phạm vi ngày có nằm trong một phạm vi ngày khác không
Trong trường hợp nào bạn đang sử dụng lambdas khi thoát khỏi phạm vi? – Borgleader
Chờ đợi các hạng mục công việc của hồ bơi để hoàn thành trước khi đóng hồ bơi chủ đề là một ví dụ tốt (ngay cả khi một ngoại lệ được ném bạn vẫn phải đợi hoặc nó sẽ làm hỏng công nhân). Bạn luôn có thể tạo một trình bao bọc C++ đầy đủ cho mỗi thứ bạn làm, nhưng có nhiều mã bổ sung trong trường hợp bạn sử dụng nó một lần. – VoidStar
Viết đề xuất? Tôi tình cờ thích [Stefanus Du Toit] (https://github.com/CppCon/CppCon2014/blob/master/Presentations/C%2B%2B11%20in%20the%20Wild%20-%20Techniques%20from%20a%20Real % 20Codebase/auto.h) 's thực hiện (mặc dù tôi không có ý tưởng tại sao ông gọi nó là 'Auto') – Barry