-
Notifications
You must be signed in to change notification settings - Fork 708
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
Ensure ABI stability with C++17/20 feature selection #10340
Comments
@masterleinad ping |
I am fine with adding the feature check macros to our configure time checks. |
Ugh, yes. How did we not think of that back when... |
If you want me to, I can fix this later. |
I am happy to make the change. Pull request incoming. |
This seems like a reasonable candidate for 9.2.1. Should we start collecting such patches? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
We currently switch between boost and standard library variants of certain classes in our
base/std_cxx17
andbase/std_cxx20
dynamically based on whether a C++20 preprocessor macro is set.This has one significant issue: If the library gets compiled with say default C++14 support we will select boost variants and compile the library with that. If a user now sets C++17/20 support in a user program the user code will use the standard library variants instead. This is an issue if user and library code must be ABI compatible.
A pragmatic solution would be to revert back to our old configuration logic and simply use the
DEAL_II_HAVE_CXX17
macro instead and introduce aDEAL_II_HAVE_CXX20
for the corresponding C++20 features. The of this approach is the fact that theDEAL_II_HAVE_*
are "configure time" constants and do not change with whatever a user enables in their own program.The text was updated successfully, but these errors were encountered: