Thay thế boost::regex
bằng std::regex
vì chúng tôi đang sử dụng gcc 4.6 trong công ty tôi gặp phải sự cố với phương thức empty()
của lớp đó - về cơ bản, không biến nó thành boost::regex
thành lớp std::regex
. Tôi không chắc liệu đây có phải là vấn đề của gcc hay phương pháp này không làm cho nó thành chuẩn C++ 11 chút nào, nhưng đoạn mã đó phụ thuộc nhiều vào tính năng này. Vì vậy, câu hỏi là - là có một cách trong C++ 11 std::regex
để kiểm tra nếu biểu thức đã bao giờ được thiết lập hoặc tôi nên dính vào boost::regex
cho phần còn lại của cuộc đời tôi?boost :: regex vs std :: regex - không thể tìm thấy phương thức empty()?
7
A
Trả lời
10
empty()
đã bị xóa khỏi std::regex
một thời gian dài trước đây. N1507 (2003-09-16) là giấy gốc để đề xuất loại bỏ của nó (tìm kiếm "Biểu thức chính quy không hợp lệ/trống là gì?"). Vấn đề này được hướng đến những gì sau đó là std::tr1:regex
. Nó được ghi lại trong các vấn đề LWG tr1 liệt kê là vấn đề 7.28 và có độ phân giải sau:
Thảo luận tại Kona. LWG đồng ý rằng hàm tạo mặc định nên tương đương với cấu trúc xây dựng từ một chuỗi rỗng. Để lại phần mở này hiện nay một phần vì chúng tôi cần từ ngữ thể hiện điều đó, và một phần là vì không rõ ràng có bất kỳ điểm nào để có chức năng thành viên() lần đầu tiên.
N1711 (2004-11-04) là bản nháp TR1 đầu tiên thiếu basic_regex::empty()
. Từ đó nó được nhập từ TR1 vào C++ 11 mà không cần thảo luận thêm.
Các vấn đề liên quan
- 1. Regex, Number or Empty
- 2. C++ không thể tìm thấy regex ngay cả với -std = C++ 11 macOSX
- 3. Không thể tìm thấy phương thức CreateQuery()
- 4. Không thể tìm thấy phương thức InsertOnSubmit()
- 5. C++ :: Boost :: Regex Lặp lại các submatches
- 6. Regex để tìm các cuộc gọi phương thức
- 7. Xác nhận tên lớp/phương thức bằng regex
- 8. Boost.Regex vs C++ 11 Regex
- 9. Java RegEx không phù hợp tìm thấy lỗi
- 10. PHP: preg_match regex không tìm thấy chuỗi đúng
- 11. WSDL Không thể tìm thấy phương thức gửi cho
- 12. phương thức init() v không tìm thấy
- 13. C++ 0x std :: shared_ptr vs. boost :: shared_ptr
- 14. Python - đơn vs multiline REGEX
- 15. biểu thức Regex trong Java \\ s vs \\ s +
- 16. Giải thích regex tìm thấy nhận xét CSS
- 17. PHPUnit assertTrue nếu tìm thấy văn bản regex?
- 18. Regex tìm từ trong chuỗi
- 19. Performance std :: strstr vs std :: string :: tìm
- 20. Tìm kiếm của Ruby Mảng với Regex biểu thức
- 21. Vô hiệu hóa cảnh báo không tìm thấy phương thức không tìm thấy
- 22. Không thể tìm thấy phương pháp onClick
- 23. Php tìm chuỗi với regex
- 24. regex tìm ký tự giữa ""
- 25. Tôi không thể tìm thấy phương thức "Bao gồm" với biểu thức lambda trong khung Entity?
- 26. C++ regex không hiểu
- 27. Boost C++ regex - cách nhận nhiều kết quả phù hợp
- 28. Truy cập riêng cho phương thức không được tìm thấy
- 29. Chạy vào System.MissingMethodException: Phương thức không tìm thấy với PrivateObject
- 30. Hành vi địa phương cụ thể trong thư viện regex?
Nó không có trong C++ 11 ... – PlasmaHH
@PlasmaHH: Thật sao? Tôi nghĩ là vậy. Đó là trong MSVC, wikipedia cũng đề cập đến nó ở đây - http://en.wikipedia.org/wiki/C%2B%2B11#Regular_expressions Vì vậy, nó cuối cùng đã không làm cho nó vào phút cuối tiêu chuẩn? –
@VladLazarenko Tôi đang xem N3290 và không thể tìm thấy nó. – pmr