On 9/15/2020 6:01 AM, Andrey Semashev via Boost wrote:
On 2020-09-15 05:18, Edward Diener via Boost wrote:
On 9/14/2020 7:38 PM, Andrey Semashev via Boost wrote:
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.
Ok, so it doesn't look as scary as it initially did. Thank you.
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.
I actually don't know what the incentive to actively drop C++03 is.
(Disclosure: I write C++17 on a daily basis and I realize C++03 is limiting in some ways. It is not in others, and some written code can be made trivially compatible with C++03. Granted, this may not be the case with Boost.PP, but that code is already written and I suspect requires little maintenance.
It will make Boost PP code much cleaner to understand if support for non-variadic macros is dropped. I still will keep whatever workarounds are needed for the VC++ non-standard default preprocessor. Now that Microsoft has a new C++ standard preprocessor, hopefully programmers will switch to it and those old workarounds can also go away some day.
Also, in my C++17 code base I'm using some great C++03 libraries, including Boost, and I see nothing wrong about it. Please, don't consider this paragraph as an invitation to C++03 vs. C++11 argument.)