-
Notifications
You must be signed in to change notification settings - Fork 472
Switch compilation from C++17 to C++20. #4347
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
Conversation
|
I started looking at this some time ago in #4297. I was probably too sneaky though. Still not complete, there is quite lot of things that break and I don't have much time for it now. The main problem is clashing operators. |
I can close this PR in favor of yours. I just wanted to see what needs to be done and it seems moving up is non-trivial. |
OK. Yes, it does not seem as easy as was the move to C++17. |
|
There is not much missing for C++20 support. It looks like there is just one small failure left. |
|
Hmm, the error is in boost, that might be hard to fix unless it is our bad usage of boost of course :-). Seems to be related to a particular version as it fails just in the sanitizers build. What are your thoughts on switching? Do you think it is time for that? We don't get many goodies until we bump minimal required GCC, but even some things from GCC 9 are nice. It would also unlock C++20 for downstreams that have newer compilers. On the other hand, we would be having a more experimental setup, with GCC that is far from stable on C++20. |
The boost version should be the same for Ubuntu 20.04 but this compiler is Clang. Maybe that is the reason.
I am happy to switch, there are some folks that have been waiting for us to upgrade to C++20 already. We can try to be conservative with the features we introduce and keep Ubuntu 20.04 as the minimum supported version until it hits EOL. |
Cherrypicking #4663 fixes the issue. There were two more small fixes required which I can fork into a separate PR. |
Personally I'm OK with the operator fixes to be there, but the boost should be separate. |
|
I've just notice that |
Yes, the changes were for testing purposes, I will move them into separate PRs. |
63d7c31 to
07beb28
Compare
|
It looks like there is very little that can be done to fix the compilation issue sans fixing boost. I am not sure why this pops up with clang only though. |
ff023c7 to
c13b298
Compare
51bcc1b to
5ddbf9a
Compare
aa8e764 to
c50c865
Compare
221a4c6 to
9c957ce
Compare
Signed-off-by: fruffy <[email protected]>
Signed-off-by: fruffy <[email protected]>
smolkaj
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀
asl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks trivial enough!
|
@jafingerhut @vlstill Any concerns or objections? I am planning to pull the trigger and switch the next week. |
No concerns or objections from me. It looks like you have a good variety of reviews from other folks, which is good. |
C++20 is now supported in most major distributions and compilers and there are several features that are useful for us to have. Let's switch to C++20.