Boost logo

Boost :

From: Edward Diener (eldiener_at_[hidden])
Date: 2020-09-15 02:18:53

On 9/14/2020 7:38 PM, Andrey Semashev via Boost wrote:
> 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.

My proposed change does not mean that PP stops supporting C++03. Lots of
compilers supported variadic macros even when compiling in C++03 mode,
ie. gcc and clang and vc++ starting with VS2005 being the most
prominent. The few that actually did not support variadic macros in
C++03 mode should not be used with future Boost by anybody; they are
really ancient. Isn't that what discouraging compiling in C++03 mode is
all about, so that ancient compilers still supporting c++03 should not
be used by developers as Boost goes forward.

> 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.

Boost list run by bdawes at, gregod at, cpdaniel at, john at