Uh oh!
There was an error while loading. Please reload this page.
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 into
Conversation
Merge upstream
… with upstream and resolved merge conflicts
bwl1289/feat/merge-upstream
bwl1289/kennedy/merge upstream
… longer exists in upstream
kou
commented
Aug 14, 2025
Could you rebase on main to use #47318 ? |
BwL1289
commented
Aug 15, 2025
@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. |
pitrou
commented
Aug 21, 2025
Perhaps we should start with C++20 as in #47330 ? |
BwL1289
commented
Aug 21, 2025
I disagree, but whatever @kou wants to do. |
kou
commented
Aug 21, 2025
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. |
lidavidm
commented
Aug 21, 2025
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.