On Tue, 22 Sep 2020 12:59:36 -0400, Edward Diener via Boost wrote:
You could tag Math as:
standard : 11 required : 14, 17, 20
It least that tells end-users that C++11 is the minimum level but that some functionality will need C++14, C++17, or C++20.
I see the idea better now.
Well, trying to put myself in a library users' shoes, seeing `required : 14, 17, 20` raises more questions.
I'd rather appreciate to see `required: 11`, then read a section in the docs explaining that "if BOOST_MATH_FANCY_X is defined, then C++14 is required; if <x> is included, then C++17 is required" and other details clearly, as a guide, less obscure than list of numbers.
Using "required" is probably a pretty bad word. Something else might be better. I am not hung up on terminology, but some word that tells the end-user that with some higher C++ level(s) more functionality is available in the library I think would also be useful. Of course this information is probably available somewhere in the docs, if you can find it. If my original "extended" and/or "required" is dropped that is fine with me, but let's at least give the end-user the immediate knowledge of what C++ minimum level is needed to use a Boost library. Having read through enough Boost library docs I know that information is often not provided at all and, if it is there, is hard to find.
Seeing 'required' followed by a list of versions is confusing - you can imagine a user thinking 'well does it require C++20 to use, and if so why mention the earlier versions'. Maybe use 'enhanced' (or 'enhanced_by') rather than 'required'. Or 'added_value'? Spencer