Conversation
|
This change produces quite a lot of warnings even on GCC (which usually seems less picky than Clang), so I'm leaving this PR as a draft to have a closer look at those. |
|
Thanks for giving this a go. Maybe we could enable |
Agreed. Also, once the build is free of warnings we could leave the Regarding the warnings themselves, all of them originate in external libraries: rapidjson and polylineencoder. Perhaps just updating to newer versions would fix those. |
|
Thanks for enabling the flag.
That was also my first idea but I have to admit that this article makes a quite convincing point.
Then that's a different problem. I'd expect suppressing warnings in polylineencoder should be pretty straightforward, and the changes would probably be gladly accepted upstream. On the other hand I don't think we could have much control on rapidjson itself. The version we ship is old: basically |
Wow, that was fast! vahancho/polylineencoder#14 + https://github.com/vahancho/polylineencoder/releases/tag/v2.0.1 |
I'm myself surprised :-)
What is the upstream repo? Is it https://github.com/Tencent/rapidjson? If so, the latest release is still 1.1.0, but there have been some development since. |
Yes, for the record there is an epic thread over there at issue 1006 dating back from 2017 (!) basically asking for a new release that never happened so far. AFAICT by using my memory and diffing the upstream repo and our There have been 725 (!!) commits to the I guess one of the ways to decide if it's worth doing a wild upgrade would be to check if it would fix the C++20 warnings in the first place? |
I see.
I agree that taking something that even the authors do not think warrants a tag is risky and uncomfortable at best.
This is a good idea. I will give it a go. |
|
I've forced a re-run on the job that previously failed due to install errors. Now we get a proper failure due to a warning while building |
|
After updating polylineencoder to v2.0.1 both g++ and clang++ builds are clean. |
|
Thanks for testing this, now we know that we can easily get away with the warnings if we update. I guess it now comes down to 2 options:
|
|
@kkarbowiak sorry for the delay here. I finally went with option 1. and updated Rapidjson (now as a submodule). Most of the changes in this PR have been necessary for experimentation but are now somehow void. Shall we close and open another PR? I also ticketed the necessary polylineencoder update in #931. |
No worries. I was also focusing on some other stuff.
Alright. This PR is still a draft and I'm ok with closing it.
Cool. |
Issue #851
Switch to C++20.
Tasks
CHANGELOG.md(remove if irrelevant)