Boost logo

Boost :

From: Mike (mike.dev_at_[hidden])
Date: 2020-03-24 18:01:17


> Gesendet: Dienstag, 24. März 2020 um 17:25 Uhr
> Von: "John Maddock via Boost" <boost_at_[hidden]>
>
>
> On 24/03/2020 13:58, Jeff Garland via Boost wrote:
> > In the regression tables the following warnings are coming out of math
> > config. I'm trying to understand what this means given that 1) the tests
> > compile and execute fine, 2) the deadline is up, and 3) several of the
> > cases are compiled in c++11 mode (is it pre conformance bc it's
> > clang3.4?). I've seen this warning in other places that include
> > lexical_cast as well. So sure I could go and define the macro to quiet
> > this, but seems like that should be done closest to the source. In other
> > words maybe math should only tell us that in headers that have a real
> > issue?

Can't speak for John, but personally I think that deciding for each header
individually whether it might use c++11 features in a year doesn't make sense.
In turn that would mean that everytime you want to use a c++11 feature in
a header that didn't use one before, you need to wait for another year and
you have to be super careful about which header includes which other header.
Thats just a waste of time.
Either deprecate c++03 for the whole library or not at all.

That aside, what is the harm in simply defining the supression macro when
compiling your tests with older compilers? I think the bigger question is:
Will date_time continue to support c++03 when (some) of the libraries
it currently depends on don't?

> > Or will this soon be a real issue?
>
> Well it will be a real issue in a year from now when we being removing
> C++03 support

> [...]
> Question: will anyone care about clang-3.4 a year from now given that
> we're currently on clang-9 ?

As degski mentioned, I doubt clang 3.4 was a particularly popular compiler
to begin with, so the answer is probably no.

Two suggestions:
1) As c++11 support is not a yes/no thing, could you perhaps specify which
    compiler versions you plan to support? E.g. gcc 4.8 was/is a pretty popular
    c++11 compiler but had a lot of conformance issues and libstdc++ was
    still missing a lot of things. So while probably no one cares about
    clang-3.4, gcc 4.8 support might be important.
    As always, not supporting X wouldn't mean it won't work, just that you
    might not test it and might not invest time to fix compatibility problems.
    
2) If I understand this correctly, c++03 support is just now going to be deprecated.
    Maybe this should not yet generate compile-time warnings as soon as a header
    is included but for now only during compilation of boost math sources, examples
    and unit tests themselves. The general warning could then be added in the
    next release.
    Of course in addtion to announcements here on the ML, in the release notes,
    the docs and maybe on reddit, twitter and/or slack.

Best

Mike


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