Re: [Boost-bugs] [Boost C++ Libraries] #10686: Boost.Preprocessor VARIADICS and VARIADICS_MSVC defined incorrectly under MSVC12

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