Làm cách nào để kiểm tra sự hiện diện của các tính năng ngôn ngữ C++ 0x/C++ 11 riêng lẻ? Tôi biết Clang có một hệ thống tốt đẹp cho việc này. Điều gì về GCC, Visual Studio hoặc Boost? Tôi đoán một cách để làm điều đó là để phát hiện phiên bản trình biên dịch và liên quan đến các tính năng được giới thiệu trong phiên bản đó. Nhưng đó là cồng kềnh. Có ai đó đã làm điều đó?C++ 11 tính năng kiểm tra
Trả lời
boost config đi kèm với tập lệnh để kiểm tra một số nhưng không phải tất cả các tính năng của C++ 11.
Tạo tệp cấu hình với các macro cho từng đối tượng địa lý.
Tôi nghĩ bạn có ý định viết gì đó sau * Xem: *. Dù sao, có Boost.Config có lẽ là đặt cược tốt nhất. Các nhân viên Boost đã theo dõi thông tin đó để họ không phải: họ lỗi đội của trình biên dịch để biết chính xác khi nào nó đủ ổn định để được quảng cáo, hoặc trong trường hợp Clang yêu cầu cờ kiểm tra mới. –
Thực ra đó là phần còn lại từ bản nháp-câu trả lời. Tôi sẽ xóa nó. Cảm ơn. – mirk
Công cụ xây dựng của bạn có thể trợ giúp việc này.
CMake có lệnh try_compile
cho phép bạn kiểm tra xem mẫu mã sẽ biên dịch và đặt biến dựa trên kết quả biên dịch.
Hiện tại tôi chỉ đang sử dụng các tính năng được hỗ trợ phổ biến hơn như nhập số auto
.
Bạn thường có thể sử dụng Boost để thay thế các tính năng thư viện bị thiếu và đây có thể là tùy chọn tốt nhất trong vài năm trong khi các trình biên dịch và thư viện được cập nhật và sửa lỗi.
C++ 11 tính năng danh sách tương thích cho GCC là ở đây: http://gcc.gnu.org/projects/cxx0x.html
Lưu ý các cảnh báo:
Quan trọng: hỗ trợ GCC cho C++ 11 vẫn còn thực nghiệm. Một số tính năng đã được triển khai dựa trên các đề xuất ban đầu và sẽ không có nỗ lực nào để duy trì khả năng tương thích ngược khi chúng được cập nhật để phù hợp với tiêu chuẩn C++ 11 cuối cùng.
- 1. Làm thế nào để kiểm tra lambda trong C++ 11
- 2. Kiểm tra các loại đối tượng trong C++ 11
- 3. QT Creator, kiểm tra cú pháp cho C++ 11
- 4. Cách sử dụng tính năng C++ 11 với Autoconf?
- 5. Tính năng C++ 11 nào hỗ trợ Visual Studio 2010?
- 6. Tính năng C++ 11 mới nhất với Android NDK
- 7. Chức năng thuần túy trong C++ 11
- 8. Chức năng C++ 11 với MinGW
- 9. C++ 11: Administrators rbegin()/Rend() Chức năng
- 10. chức năng bậc cao trong C++ 11
- 11. Thử nghiệm tính năng so với đơn vị kiểm tra
- 12. Bật tính năng Kiểm tra nhiều tệp tại TFS
- 13. Trình biên dịch C++ hỗ trợ tất cả các tính năng đồng thời C++ 11?
- 14. Garbage Collection trong C++ 11
- 15. clang ++ C++ 11 invocation
- 16. C++ 11 std :: chức năng và chuyển tiếp hoàn hảo
- 17. Tiện ích kiểm tra hiệu năng cho C++
- 18. Đo lường khả năng kiểm tra của mã C#
- 19. Cách tính tổng kiểm tra
- 20. Bật tính năng kiểm tra tính toàn vẹn với sqlite trong django
- 21. Kiểm tra đơn vị hoặc Kiểm tra chức năng?
- 22. Kiểm tra năng lực PHP?
- 23. Kiểm tra chức năng "System.Web.Mvc.ViewEngines.Engines.FindPartialView"
- 24. javascript chức năng kiểm tra
- 25. Kiểm tra tính bình đẳng trong Mục tiêu-C
- 26. Macro C: #if kiểm tra tính bình đẳng
- 27. Kiểm tra tính bình đẳng của các mảng trong C#
- 28. C++ 11: Khóa kiểm tra an toàn kép để khởi tạo lười. Khả thi?
- 29. C++ 11 có hỗ trợ các tính năng mới của C11 không?
- 30. Tính năng "Khởi tạo thành viên trong lớp" có được tạo thành C++ 11 không?
Trả lời thẳng về phía trước sẽ là viết mã bằng tính năng đó và biên dịch nó. – iammilind
Tại sao câu hỏi này nên được đóng lại? –
@ Nordlöw: Hai người đã bỏ phiếu để đóng nó là bản sao của [câu hỏi này] (http://stackoverflow.com/q/6095885/636019). – ildjarn