boostorg / boostorg/preprocessor

BOOST_PP_VARIADICS_MSVC set incorrectly for EDG in Microsoft emulation mode

Offen
#41 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
118
Forks
76
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginnen Sie in preprocessor/config/config.hpp und untersuchen Sie die Bedingung, die BOOST_PP_VARIADICS_MSVC setzt, wobei Sie sich auf das Zusammenspiel zwischen _MSC_VER, __EDG__ und _MSVC_TRADITIONAL konzentrieren. Das Issue ist abgeschlossen, wenn EDG im Microsoft-Emulationsmodus BOOST_PP_VARIADICS_MSVC nicht mehr fälschlicherweise auf 0 setzt; es wird keine bestimmte Testdatei genannt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.