-
Notifications
You must be signed in to change notification settings - Fork 3.9k
GH-47207: [C++][C++23] Upgrade Arrow to be compatible with C++23 #47328
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
Merge upstream
… with upstream and resolved merge conflicts
bwl1289/feat/merge-upstream
bwl1289/kennedy/merge upstream
… longer exists in upstream
|
Could you rebase on main to use #47318 ? |
@kou I tried rebasing just now but ran into merge conflicts I'm finding difficult to resolve. I think it's better if you do it. |
Perhaps we should start with C++20 as in #47330 ? |
I disagree, but whatever @kou wants to do. |
The link should be #45445 ?
Based on the current C++23 CI job failure, we need to require C++20 to pass the failure: https://github.com/apache/arrow/actions/runs/17113416247/job/48539553905#step:6:2347
We can ignore the Anyway, this is stuck due to the rebase failure. We can't continue this. |
Does it have to be a commit-by-commit rebase? Why not squash first, then rebase and force push? |
Rationale for this change
Arrow’s C++ codebase currently targets an older C++ standard. Moving to C++23 helps keep the project aligned with modern compiler defaults, enables new language features, and ensures continued compatibility with upcoming compiler versions.
During this upgrade, several forward declaration patterns used in the codebase became invalid under C++23 rules, requiring changes to maintain build correctness.
What changes are included in this PR?
This PR updates code to resolve forward declaration errors triggered by C++23 compliance checks. Specifically, it corrects invalid or outdated forward declarations that are rejected by C++23.
Applies the fixes in:
cpp/src/arrow/acero/asof_join_node.cc
cpp/src/arrow/filesystem/mockfs.cc
cpp/src/arrow/flight/types.h
Are these changes tested?
Yes.
Are there any user-facing changes?
No.