boostorg / boostorg/preprocessor
BOOST_PP_VARIADICS_MSVC set incorrectly for EDG in Microsoft emulation mode
- Langage dominant
- C++
- Étoiles
- 118
- Forks
- 76
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez dans preprocessor/config/config.hpp et examinez la condition qui définit BOOST_PP_VARIADICS_MSVC, en vous concentrant sur l’interaction entre _MSC_VER, __EDG__ et _MSVC_TRADITIONAL. L’issue est terminée lorsqu’EDG en mode d’émulation Microsoft ne définit plus incorrectement BOOST_PP_VARIADICS_MSVC à 0 ; aucun fichier de test spécifique n’est mentionné.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100