On 10/22/2018 4:32 AM, Niall Douglas via Boost wrote:
On 21/10/2018 05:44, Edward Diener via Boost wrote:
If anyone wants to try this out on Boost PP 'develop' feel free to do so. You will need to invoke the msvc-14.1 toolset in Boost Build with the /experimental:preprocessor switch and you will need to upgrade VS2017 to 15.8 or above. You can tell whether you have succeeded invoking the Boost PP tests with the new preprocessor by looking at the run output of the config_info test. If the BOOST_PP_CONFIG_FLAGS() is 0x0001 it is the new preprocessor, else it is the default non-standard preprocessor (0x0004).
What's your general opinion of the quality of the new MSVC preprocessor?
It needs to be bug free when run against the Boost PP and Boost VMD tests, else it is not standard conforming as far as I can know. I have not tried it against the Boost VMD tests yet but I will. The fact that there are still some bugs when run against Boost PP means it still needs to be fixed further. Of course I am not claiming that Boost PP or Boost VMD tests actually test every possible situation in a C++ standard preprocessor, but they are pretty good in testing a great many of its macro expansion situations. Microsoft did triage my bug report about the wrong number of arguments to a macro giving a warning rather than a compiler error so that is encouraging. It would be real nice if Microsoft provided a means, as part of the new MSVC preprocessor, to show their own step-by-step output of any given macro's expansion as this would make it much easier to find and report the bugs in a much more simple example which are still occurring in the Boost PP testing. I can of course use Boost Wave, which is a great tool, but that shows how a given macro should expand according to the C++ standard and not how MSVC macro expansion is actually happening. OTOH, as part of a bug report, I can just point Microsoft to the Boost PP tests which are failing or producing incorrect warnings, but I doubt that is acceptable as a bug report on which they will act. Of course it is encouraging that after so many years of supporting a non-standard C++ preprocessor Microsoft is finally attempting to create a standard C++ preprocessor.
Niall