On 2020-09-15 01:52, Edward Diener via Boost wrote:
In lieu with Boost's decision regarding dropping support for C++03 compilation, I would like to drop support in the preprocessor library for preprocessors which do not implement variadic macros. Variadic macros were added in the C++11 standard, although a number of compilers supported them even before the official C++ standard. I will of course keep the same macro APIs, although deprecating non-variadic macro forms when alternate variadic macro forms exist. This will simplify Boost PP. Ideally, once Boost PP supports only preprocessors which implement variadic macros, Boost VMD can be added to Boost PP, for anyone who wants to use its functionality, and Boost VMD can then be retired.
Why not make Boost.Preprocessor2 or extend Boost.VMD? Boost.Preprocessor is used quite a lot throughout Boost, not in the least part specifically to support C++03. If it stops being C++03 compatible, this will mean most of Boost will stop as well. At that point the dependent libraries may need to reevaluate if they still want to use Boost.Preprocessor and possibly either fork it or replace it with C++11 constructs. In some instances, like Boost.MPL, Boost.Variant, this may make the library pointless because there already are C++11 and newer replacements.