chore(c): Update to C++20#4506
Conversation
Raise the C++ language standard for the whole ADBC C++ project from C++17 to C++20. Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
|
|
Update vendored fmt to support C++20. Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
|
Sorry - while we can do this, I didn't necessarily want to. At the very least, since this will (IIRC) raise the manylinux target on wheels, I would want to announce in the next release that this is coming, and only after make the change. |
|
Also, like, instead of upgrading |
👍 Absolutely. Let me know if you think it makes sense to continue this PR, or if we should close it for now.
It doesn't seem to raise the manylinux target - that will only happen by specific code causing references to new symbols (such as
Let me know if you want to proceed with this C++20 update, and I can have a look at it! |
IIRC, the C++ compilers available on the manylinux2014 build image only have minimal C++20 support - so while an initial compile may work, there would be no point just raising the standard if we can't actually use it. And so I'd rather just hold off in that case. |
Are we not using That seems (
Tried a simple concepts + ranges + std::format program, and it compiled and ran. |
|
Oh, I forgot I had bumped it a while back...I thought we were still on 2014 |
|
Even so, I'd want to announce that we are doing this before we actually do it |
Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
Absolutely, makes sense. Let me know if I can help with anything (changes/investigation/communication). |
|
Pushed a (disclaimer: AI generated) migration from |
Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
|
Migrating If that is a blocker |
Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
Biggest change is linking libstdc++ statically on jammy. Signed-off-by: Fredrik Fornwall <fredrik@fornwall.net>
|
The That is a unfortunate.. Let me know what you think about this PR:
|
Raise the C++ language standard for the whole ADBC C++ project (the
c/directory) from C++17 to C++20.This also migrates from
fmttostd::format.Other changes using C++20 can come gradually over time once someone has a need for it.
consteval/constinit, the<=>spaceship operator,std::span,std::format, calendar/timezone<chrono>, etc):