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-09 00:18:43


#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 iFreilicht):

 I mean it as I say it. To cite this article:
 http://blogs.msdn.com/b/vcblog/archive/2011/03/29/10146895.aspx

 "The IntelliSense compiler is not the build compiler."

 IntelliSense is "compiling" (with no file output, of course) code in the
 background to offer the red squiggly lines that point out programming
 mistakes before you actually compile the code with VC++.

 And while it does that, the `__EDG__` macro and some others, beginning
 with `__EDG`, are defined for whatever reason. Because the IntelliSense
 compiler is working very similarly to the VC++ compiler, it would of
 course need the workarounds for variadic macros to expand all the macros
 correctly, which are not used because `__EDG__` is defined.

 What that means is that certain macros of Boost.PP are underlined as
 programming errors by IntelliSense, but compile perfectly fine under VC++,
 as it doesn't define `__EDG__`. I have no idea why IntelliSense does it,
 it really makes no sense to me.

 So this really isn't a showstopper or anything, but it is annoying.

 What I propose as a fix is that you also check if `__INTELLISENSE__` is
 defined, and base the definition of `BOOST_PP_VARIADICS` and
 `BOOST_PP_VARIADICS_MSVC` on that, too.

 BTW: to prevent macros showing up like __THIS__, enclose them in
 backticks.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10686#comment:5>
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