-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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++] compilation standard to C++20 #44792
Comments
Yes that's not a quick decision to make. Here is the thread about bumping to 17 2 years ago: https://lists.apache.org/thread/9g14n3odhj6kzsgjxr6k6d3q73hg2njr |
I checked and we currently can't switch to 20 because CRAN (R package hub) has several builds with AppleClang <=14. This is a blocker but not necessarily the only one. You are certainly not alone in preferring to use C++20 but as arrow C++ is a foundational library we have to be more conservative with such thinks. I will close this issue for now, we can re-visted in time |
It seems that "Apple Clang 1300.0.29.30" is the oldest version based on the last R arrow package check information:
It's based on LLVM 12.0.0. See also: https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework)_2 LLVM 12.0.0 has So we may be able to use C++20 on CRAM. (We may not be able to use some C++20 features.) |
We can use C++20 with GCC 8 or later: https://gcc.gnu.org/projects/cxx-status.html#cxx20 |
I think before such a move we should properly document our support policy. That will create clarity both for users and contributors. |
It mentions supported GCC/Clang/MSVC versions explicitly, right? |
AFAIK this is the only place we mention it:
|
It seems that we need to add only Clang version to the document. |
FYI: We tried C++20: #45445 |
Thanks for pointing me to this issue @kou |
Describe the enhancement requested
are there any issues with setting the default to c++20 in the codebase? Currently the cmake_modules/SetupCxxFlags.cmake sets CMAKE_CXX_STANDARD to 17.
Component(s)
C++
The text was updated successfully, but these errors were encountered: