s2geometry
s2geometry copied to clipboard
Port to C++20.
This patch replaces various constructs that were deprecated in C++17 and removed in C++20 with their C++20 counterparts.
With this patch, s2geometry can be compiled with gcc 10.
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
:memo: Please visit https://cla.developers.google.com/ to sign.
Once you've signed (or fixed any issues), please reply here with @googlebot I signed it!
and we'll verify it.
What to do if you already signed the CLA
Individual signers
- It's possible we don't have your GitHub username or you're using a different email address on your commit. Check your existing CLA data and verify that your email is set on your git commits.
Corporate signers
- Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the Google project maintainer to go/cla#troubleshoot (Public version).
- The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA data and verify that your email is set on your git commits.
- The email used to register you as an authorized contributor must also be attached to your GitHub account.
ℹ️ Googlers: Go here for more info.
What's the minimum c++ version needed for this to work?
What's the minimum c++ version needed for this to work? @jmr I would expect this to work from C++14 upwards.
This isn't compiling:
https://travis-ci.org/github/google/s2geometry/builds/696839883
C++20 is too new to require. C++14 is definitely ok and C++17 is probably ok.
With this patch, s2geometry can be compiled with gcc 10.
gcc 10 works without this patch. https://travis-ci.org/github/google/s2geometry/jobs/722137049#L423
I will close and re-open this in hope of getting travis-ci to notice the .travis.yml
changes. The current CMakeLists.txt
is incompatible with the old .travis.yml
.
This breaks both compilers that support c++20 https://travis-ci.org/github/google/s2geometry/jobs/722649190#L544
and those that don't https://travis-ci.org/github/google/s2geometry/jobs/722649187#L324