GH-47207: [C++][C++23] Upgrade Arrow to be compatible with C++23#47328
GH-47207: [C++][C++23] Upgrade Arrow to be compatible with C++23#47328BwL1289 wants to merge 28 commits intoapache:mainfrom
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.cccpp/src/arrow/filesystem/mockfs.cccpp/src/arrow/flight/types.hAre these changes tested?
Yes.
Are there any user-facing changes?
No.