Skip to content
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

C++20? #1204

Open
tsteven4 opened this issue Nov 1, 2023 · 12 comments
Open

C++20? #1204

tsteven4 opened this issue Nov 1, 2023 · 12 comments

Comments

@tsteven4
Copy link
Collaborator

tsteven4 commented Nov 1, 2023

Should we raise the floor to C++20?

Compilers in use:

Assuming we drop toolset v141,version=14.16.27023 which is the lastest toolset for visual studio 2017, and require at least the latest toolsets for visual studio 2019 which would be v142, version 14.29.30133 or any in support toolset for visual studio 2022 which would be >= v143, version 14.32.31326. (14+5=19 on the support features page below).

Ubuntu jammy, has g++ 11.4.0 and clang 14.0.0.

The oldest Xcode we use in CI is currently 12.5.1 on macOS 11, which has apple clang 12.0.5. We could use Xcode 13.2.1, with apple clang 13.0.0 on macOS 11.

Compiler/Library feature support

Support is summarized here: https://en.cppreference.com/w/cpp/compiler_support#cpp20 and here https://en.cppreference.com/w/cpp/compiler_support#C.2B.2B20_library_features

Benefits

One features I have wanted for consistency is "Default member initializers for bit-fields", although the impact on our code set is minimal.

What other features would be useful?

@robertlipe
Copy link
Collaborator

robertlipe commented Nov 1, 2023 via email

@GPSBabelDeveloper
Copy link
Collaborator

GPSBabelDeveloper commented Nov 1, 2023 via email

@tsteven4
Copy link
Collaborator Author

tsteven4 commented Nov 1, 2023

It looks to me like the only toolset we use with complete support is MSVC! The community edition is free. I think the question is how much the version of gcc and clang are going to hold us back on Ubuntu jammy, and apple clang on whatever we want to set our minimum development floor to be for macOS.

@robertlipe
Copy link
Collaborator

robertlipe commented Nov 1, 2023 via email

@tsteven4
Copy link
Collaborator Author

tsteven4 commented Nov 1, 2023

The important user of the jammy LTS for us is the github runners. jammy is currently the latest Ubuntu release available on a github hosted runner.

@tsteven4
Copy link
Collaborator Author

tsteven4 commented Nov 1, 2023

And the first failure is on macOS, with the newest version of Xcode we currently use:

Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/concept:318:1: error: Parse error at "::"

@tsteven4
Copy link
Collaborator Author

tsteven4 commented Nov 1, 2023

above error with concepts is reported at https://bugreports.qt.io/browse/QTBUG-117765

@tsteven4
Copy link
Collaborator Author

tsteven4 commented Nov 1, 2023

@robertlipe what version of macOS are you trying to keep alive for building? As an alternative you likely can use teamviewer or ssh to our macstadium machine. I believe more than one developer is allowed but usage is restricted to development of gpsbabel.

@GPSBabelDeveloper
Copy link
Collaborator

GPSBabelDeveloper commented Nov 1, 2023 via email

@tsteven4
Copy link
Collaborator Author

tsteven4 commented Nov 1, 2023

see PR #1206 for latest CI results

@GPSBabelDeveloper
Copy link
Collaborator

GPSBabelDeveloper commented Nov 1, 2023 via email

@robertlipe
Copy link
Collaborator

robertlipe commented Nov 2, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants