-
Notifications
You must be signed in to change notification settings - Fork 27
c++20 - first draft #218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
c++20 - first draft #218
Conversation
|
Because header files of eckit require C++20, then downstream packages will fail unless they all adapt the required C++ standard. Instead, one can add the compile features as PUBLIC to a target, as I did e.g. with atlas for C++17: target_compile_features( atlas PUBLIC cxx_std_17 )Probably the core eckit library could set this, and then the downstream packages will inherit. |
|
How likely is it that we move the whole stack to C++20? When it is possible to do for eckit, it must be possible for the whole stack? |
If eckit requires c++20 then naturally everything depending on eckit (so nearly every of our C++ packages) will have c++20 enabled. |
|
I could really make use of |
No only would most C++ packages would need to move to C++20, but also some of our infrastructure (namely CI runners) would have to evolve e.g. rocky 8.6 runners are provisioned with GCC 8.5.0 which provides only minimal C++20 support via option |
|
@tlmquintino , @simondsmart , @Ozaq , relating to the entire software stack (but starting with eckit), do we have a proposed time line, (or could we have one if not), on when we drop support for certain compilers / versions? Could this be made available publicly on a webpage? We should also involve such timeline for the version of CMake, and standard version of C and C++. Such timeline should help us to deprecate CI runners and upgrade to new ones. Similar to how Github's own runners get deprecated over time. |
Description
Contributor Declaration
By opening this pull request, I affirm the following: