Boost logo

Boost :

From: Edward Diener (eldiener_at_[hidden])
Date: 2020-12-31 01:27:33


On 12/30/2020 12:13 PM, Paul A Bristow via Boost wrote:
>
>
>> -----Original Message-----
>> From: Boost <boost-bounces_at_[hidden]> On Behalf Of Edward Diener via Boost
>> Sent: 30 December 2020 15:04
>> To: boost_at_[hidden]
>> Cc: Edward Diener <eldiener_at_[hidden]>
>> 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 <boost-bounces_at_[hidden]> On Behalf Of Edward
>>>> Diener via Boost
>>>> Sent: 30 December 2020 04:23
>>>> To: boost_at_[hidden]
>>>> Cc: Edward Diener <eldiener_at_[hidden]>
>>>> 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
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk