Có thể xác định xem thư viện chuẩn C++ có hỗ trợ C++ 11 bằng cách sử dụng chỉ thị tiền xử lý không?Có một chỉ thị tiền xử lý để phát hiện thư viện chuẩn C++ 11 không?
Tôi hiện đang làm việc trên một dự án sử dụng ngôn ngữ C++ 11, nhưng với thư viện chuẩn C++ không hỗ trợ C++ 11 (tôi cần điều này để có thể liên kết với không C++ 11 thư viện).
Tôi biết rằng tôi có thể kiểm tra hỗ trợ C++ 11 bằng cách sử dụng #if __cplusplus >= 201103L
, nhưng trong trường hợp của tôi, điều này sẽ được đánh giá là đúng. Tôi cần biết về hỗ trợ thư viện chuẩn C++ cho C++ 11.
Related: http://stackoverflow.com/q/11886288/743214 –
* "Tôi biết rằng tôi có thể kiểm tra hỗ trợ C++ 11 bằng cách sử dụng' #if __cplusplus> = 201103L' "* - Không , thậm chí không. Do hầu hết các trình biên dịch chỉ hỗ trợ một tập hợp con của C++ 11 (tuy nhiên, tập con lớn có thể được, mặc dù), macro '__cplusplus' này là hoàn toàn vô dụng. Thử nghiệm một cách đáng kể cho các tính năng tiêu chuẩn (có thể là ngôn ngữ hoặc thư viện) vẫn là một vấn đề chưa được giải quyết (mặc dù * cố gắng * để giải quyết nó đang trên đường của họ, như * TemplateRex * chỉ ra trong câu trả lời của mình). –
Với tôi, vấn đề của bạn có vẻ như bạn cần một công cụ cấu hình như CMake hoặc autotools. Họ thực hiện kiểm tra cho bạn và tạo tiêu đề chứa Macro mà bạn có thể đánh giá. Nếu bạn chỉ có một thư viện, bạn có thể yêu cầu từ người dùng của mình cung cấp macro - vẫn là giải pháp kém. – usr1234567