-----Original Message----- From: Boost
On Behalf Of Hans Dembinski via Boost Sent: 23 September 2020 08:53 To: Boost Devs Cc: Hans Dembinski Subject: Re: [boost] Proposal for adding C++ level to the meta/libraries.json On 23. Sep 2020, at 08:54, Spencer Collyer via Boost
wrote: Maybe use 'enhanced' (or 'enhanced_by') rather than 'required'. Or 'added_value'?
+1 for 'enhanced'.
I'm not sure about 'enhanced'. What the metadata is saying is 'some library features require up to C++20'. Why not just give a *range of requirements* for example: "C++11 to C++17"? Of course what would be much more helpful, but a massive lot more work would be to list the requirements in Boost-style descriptors, for example, cxx11_lambdas cxx11_auto_declarations ... These are derived from https://www.boost.org/doc/libs/1_74_0/libs/config/doc/html/boost_config/boos... and how to use them https://www.boost.org/doc/libs/1_74_0/libs/config/doc/html/boost_config/buil... For example a line from \boost\libs\math\test\Jamfile.v2 noting the 'requires' [ run test_1F0.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] ] # hypergeometric_pFq_checked_series.hpp uses auto, the rest are from quadrature tests. We might consider adding these requirement to the JSON metadata, but when they vary from library sub-feature like function, it would be duplicating what can be deduced from consulting the tests in jamfiles. (And more work than I feel is worthwhile). Paul PS
Apart from the minimum, it is useful for lib authors to advertise that they support newer standards as well.
Don't we always expect (well - hope for) a C++03 library to still work with C++20? (It might take a BOOST_ macro to hide differences).