Subject: Re: [Boost-bugs] [Boost C++ Libraries] #10686: Boost.Preprocessor VARIADICS and VARIADICS_MSVC defined incorrectly under MSVC12
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-11-06 14:41:10
#10686: Boost.Preprocessor VARIADICS and VARIADICS_MSVC defined incorrectly under
MSVC12
-------------------------------+---------------------------
Reporter: iFreilicht | Owner: no-maintainer
Type: Bugs | Status: new
Milestone: To Be Determined | Component: preprocessor
Version: Boost 1.54.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+---------------------------
Comment (by eldiener):
VC++12 is the C++ version under Visual Studio 2013.
What does it mean when you say ___EDG___ is only defined under the
Intellisense compiler" ? Is there a 'cl' compiler switch which you can
show which defines ___EDG___ ?
The definition of:
{{{
# define BOOST_PP_VARIADICS_MSVC 1
}}}
is only made for the VC++ preprocessor when variadic macros are allowed.
This means lots of workarounds for VC++ in the Boost PP code because VC++
does not have a standard C++ preprocessor. However if ___EDG___ is defined
Boost PP assumes a C++ standard conforming preprocessor and the VC++
workarounds are not used in that case. If Microsoft is defining ___EDG___
in any situation I would like to understand the case because in terms of
Boost PP this means a C++ conforming preprocessor and if that is not the
case when ___EDG___ is defined I have to find a workaround in Boost PP for
that situation.
If ___EDG___ is defined BOOST_PP_VARIADICS is set to 1 via the lines in
config.h of:
{{{
# elif !defined __cplusplus && __STDC_VERSION__ >= 199901L ||
__cplusplus >= 201103L
# define BOOST_PP_VARIADICS 1
}}}
so BOOST_PP_VARIADICS will be defined if Microsoft is defining ___EDG___
anywhere, but no workarounds for VC++'s broken preprocessor are then used.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/10686#comment:4> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:17 UTC