-
Notifications
You must be signed in to change notification settings - Fork 82
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
[FIX] CPP23 #3240
[FIX] CPP23 #3240
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
// PR2165 / __cpp_lib_tuple_like (C++23): std::apply requires tuple-like. | ||
// In C++23, this means std::array, std::pair, std::tuple, and std::ranges::subranges. Nothing else. | ||
// https://en.cppreference.com/w/cpp/utility/tuple/tuple-like | ||
std::apply(expander, as_base()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could also be
std::apply(expander, static_cast<base_type &>(*this));
but I prefer the as_base()
-way
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree, as_base()
is nicer
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3240 +/- ##
=======================================
Coverage 98.17% 98.17%
=======================================
Files 269 269
Lines 11854 11856 +2
=======================================
+ Hits 11638 11640 +2
Misses 216 216 ☔ View full report in Codecov by Sentry. |
I don't know why the nightlies only fail now, even though these changes have been in GCC for a few months :)
https://cdash.seqan.de/index.php?project=SeqAn3
Commit 1
Things like std::apply require tuple-like.
It also kinda means that CPP23 breaks most of our custom tuple stuff; at least when you want to use it like a
std::tuple
. In the future,std::get
is supposed to get a CPO.Commit 2
Adding a
WORKAROUND
macro is a bit verbose, but I don't want the linker error to mask other potential issues.