boostorg / boostorg/preprocessor

BOOST_PP_VARIADICS_MSVC set incorrectly for EDG in Microsoft emulation mode

Đang mở
#41 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C++
Star
118
Fork
76
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

In preprocessor/config/config.hpp, the condition for setting BOOST_PP_VARIADICS_MSVC to 1 is:

`# if defined _MSC_VER && _MSC_VER >= 1400 && !defined(__clang__) && (defined(__INTELLISENSE__) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1700) || !(defined __EDG__ || defined __GCCXML__ || (defined __NVCC__ && defined __CUDACC__) || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)) && (!defined(_MSVC_TRADITIONAL) || _MSVC_TRADITIONAL)
`
Unless modified by a customer, when the EDG front end is invoked in Microsoft emulation mode, it defines both _MSC_VER and __EDG__, with the value of _MSVC_TRADITIONAL being set depending on the --[no_]_ms_std_preprocessor command-line option. When the EDG front end is invoked emulating the traditional Microsoft preprocessor (currently the default in Microsoft emulation mode), this results in defining BOOST_PP_VARIADICS_MSVC to 0, causing errors when Boost preprocessor variadics are used.

Presumably the fix is simply to remove the "defined __EDG__" test in this conditional.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu trong preprocessor/config/config.hpp và kiểm tra điều kiện thiết lập BOOST_PP_VARIADICS_MSVC, tập trung vào sự tương tác giữa _MSC_VER, __EDG__ và _MSVC_TRADITIONAL. Issue được hoàn tất khi EDG trong chế độ giả lập Microsoft không còn thiết lập BOOST_PP_VARIADICS_MSVC thành 0 một cách không chính xác; không có tệp kiểm thử cụ thể nào được đề cập.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp
Lĩnh vực
compilers
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.