tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
de-Alice-ing USE_CXX_FEATURES and c++17
I have gone over all the features and adjusted comments to list what
upstream documents, so we know where we are different.
There are three things that we have as USE_CXX_FEATURES that are
actually part of C++17:
charconv
filesystem
parallelism_ts
grepping over Makefile*, regularizing markup, sort and uniq -c, and hand
sorting:
1 USE_CXX_FEATURES= c++1 (obvious bug, not important)
6 USE_CXX_FEATURES= unique_ptr
2 USE_CXX_FEATURES= regex
4 USE_CXX_FEATURES= has_include
123 USE_CXX_FEATURES= c++11
2 USE_CXX_FEATURES= c++11 unique_ptr
3 USE_CXX_FEATURES= c++11 regex
2 USE_CXX_FEATURES= c++11 put_time
54 USE_CXX_FEATURES= c++14
4 USE_CXX_FEATURES= charconv
1 USE_CXX_FEATURES= charconv filesystem
18 USE_CXX_FEATURES= filesystem
1 USE_CXX_FEATURES= parallelism_ts
95 USE_CXX_FEATURES= c++17
6 USE_CXX_FEATURES= c++17 charconv
1 USE_CXX_FEATURES= c++17 charconv filesystem
10 USE_CXX_FEATURES= c++17 filesystem
1 USE_CXX_FEATURES= c++17 filesystem unique_ptr
16 USE_CXX_FEATURES= c++20
2 USE_CXX_FEATURES= c++20 charconv
1 USE_CXX_FEATURES= c++23
it seems that charconv and filesystem have significant presence. What's
unknown is how many packages that lack the markup use them anyway and
fail on other platforms.
It also seems that we have multiple styles of usage:
- asking for C++17 and then asking for things that are in C++17
(probably similar for c++11)
- asking for C++17 and asking for something that was in gcc 4.9, when
4.9 doesn't come close to C++17. Surely unique_ptr is still
required in C++17.
(probably historical and not needed)
- asking for specific things in C++17 without requiring any particular
C++ version and thus being C++03
(probably a bug!)
- asking for C++20 and charconv
(odd, as charconv is required in C++17, and that raises the issue
that if one asks for C++20 can that be expected to include all of
C++17, even if it doesn't include all of C++20? I would think so.)
What is notably missing is asking for C++11 and then a single feature in
C++17.
This comes down to one usage that makes sense and several that probably
are not necessary.
Therefore, all of the features should be read as "I asked for C++NN and
I need this feature which is in C++NN".
I'd like to say that despite my complaints about details, we are in
amazingly better shape than the old days of GCC_REQD!
- References:
- gdal 3.9.0, C++17, charconv, gcc7
- Re: gdal 3.9.0, C++17, charconv, gcc7
- Re: gdal 3.9.0, C++17, charconv, gcc7
- Re: gdal 3.9.0, C++17, charconv, gcc7
- Re: gdal 3.9.0, C++17, charconv, gcc7
Home |
Main Index |
Thread Index |
Old Index