
On 3/25/2017 4:37 PM, Peter Dimov via Boost wrote:
Edward Diener wrote: On 3/25/2017 12:46 PM, Peter Dimov via Boost wrote:
Well given that BOOST_PP_VARIADICS_MSVC=0 works at least some of the time and BOOST_PP_VARIADICS_MSVC=1 never works, it seems to me that the > choice is a rather easy one and does not depend on any predefined > macros.
I am not sure what you are saying here:
1) Are you saying that turning off BOOST_PP_VARIADICS_MSVC for clang targeting VC++ allows that compiler to work with BoostPP ?
2) Are you saying that turning off BOOST_PP_VARIADICS_MSVC for clang targeting VC++, allows that compiler to work with BoostPP when -fno-ms-compatibility is defined ?
3) 2) Are you saying that turning off BOOST_PP_VARIADICS_MSVC for clang targeting VC++, allows clang/C2 to work with BoostPP when -fno-ms-compatibility is defined ?
I'm telling you 3)2), yes, at least for this simple MPL program I tested.
I meant to write "3)" and not "3)2)" above. Sorry ! Try running all the Boost PP tests <g>. I would be very surprised if they worked in -fno-ms-compatibility mode. I will try it myself with clang targeting VC++ using clang-win.
If I could get b2 to work with Clang/C2, I would have run the tests, but I'm not sure I can do that.
Touche ! I am not sure whether to use clang ( clang-linux ) or clang-win, but I am guessing the latter is the right match. Also I still don't know how to invoke clang/C2. I will look in the VS2015/VS2017 directory structure unless you know what it is called and where it is ?
I'm also telling you that since BOOST_PP_VARIADICS_MSVC=1 never works with any Clang, there is perhaps no reason to ever set it to 1 regardless of what Clang it is and what options have been defined.
Well I can change config.hpp to reflect that. Ideally if clang targeting VC++ actually emulated the VC++ non-standard preprocessor perfectly BOOST_PP_VARIADICS_MSVC=1 would absolutely have to be defined in order for clang targeting VC++ to work properly with Boost PP. That is the obvious reason why it has been used in that situation.