On 12/30/2020 12:13 PM, Paul A Bristow via Boost wrote:
-----Original Message----- From: Boost
On Behalf Of Edward Diener via Boost Sent: 30 December 2020 15:04 To: boost@lists.boost.org Cc: Edward Diener Subject: Re: [boost] C++11 on up Boost libraries On 12/30/2020 7:20 AM, Paul A Bristow via Boost wrote:
Boost.Math has a documented minimum requirement of C++11 (but many library functions, distributions etc still work with C++03, and some new library items require C++17, and some are likely to require C++20 very soon).
I'm sorry that this doesn't fit neatly into your schema ☹
I think then 'cxxstd' should be '11' for Boost.Math. Does this also need to be set for any of:
Boost.config https://www.boost.org/doc/libs/1_75_0/libs/config/doc/html/index.html
is used by all these libraries and may determine the cxxstd that is supported.
Math Common Factor
Is now part of Boost. Integer
https://www.boost.org/doc/libs/release/libs/integer/doc/html/index.html
whereas
Math Octonian Math Quaternion
Are part of Boost.Math https://www.boost.org/doc/libs/release/libs/math/doc/html/quaternions.html https://www.boost.org/doc/libs/release/libs/math/doc/html/octonions.html I believe that the above are quite mature and should still work at C++03.
But many of these below are only tested at C++11 and may fail at C++03 (and others require C++14 or even C++17)
Math/Special Functions Math/Statistical Distributions
These are a useful guide, but the only certain method of determining the actual requirements for a particular program and tool chain is to try it.
Let me try again. I acknowledge that a library may have functionality where different C++ standard levels are needed to access that functionality. Still an end-user will probably want to know whether that library is mostly usable given the C++ standard level he/she is using for compilation of C++ code. That is all I am trying to establish for Boost libraries with the 'cxxstd' json field for a library's meta data. It does not mean that there is not functionality in the library which does not really need that 'cxxstd' level, or that there is not functionality in the library which needs a higher 'cxxstd' level. These things may, and probably should, be documented for that library in the official library's documentation. And of course the end-user should read the library's documentation. But I have very often found that something as basic as what C++ level is needed to use the functionality of a library, or what C++ level is needed to use just some of the functionality of a library, is extremely hard to find in most Boost library's documentation unless you know a priori where in general to look. And since Boost has perhaps wisely decided not to tell library developers exactly where in the documentation certain things should be explained, I felt that having this basic information about a minimum C++ standard level should be easily available to the end-user, where the documentation itself can explain what C++ level, or perhaps more correctly what C++ features, may be needed for other functionality in the library. I acknowledge that others may not agree that this minimum C++ standard level may not be as useful for end-users as I believe it is.
Paul
-----Original Message----- From: Boost
On Behalf Of Edward Diener via Boost Sent: 30 December 2020 04:23 To: boost@lists.boost.org Cc: Edward Diener Subject: [boost] C++11 on up Boost libraries In my effort to set the meta information of 'cxxstd' for the appropriate C++11 on up libraries, my PRs for these libraries have been kindly merged to 'develop' by the library maintainers:
beast callable_traits context convert coroutine2 fiber geometry gil hana histogram hof json leaf mp11 nowide outcome pfr process safe_numerics static_string stl_interfaces variant2 yap
If anyone knows of any other current library which is a C++11 on up library, please tell me. My testing showed that all other Boost libraries will work in C++03 mode, but maybe I missed some other library which is a C++11 on up library.
Needless to say other libraries have noted their attention to move from C++03 to C++11 in the near future. If any library does change the C++ mode necessary to use that library, I hope the maintainer(s) of that library will update the 'cxxstd' meta information appropriately.
If we can get the website to work properly using the 'cxxstd' meta information, end-users should be able to know immediately whether a Boost library is usable depending on the C++ standard mode their are using.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost