-
Notifications
You must be signed in to change notification settings - Fork 297
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
Removed old-style-cast from Plumed.h #1090
Conversation
For clarity, I would:
Indeed, I see you only use it in regions of the code that are C++ only, so no reason to use this macro Thanks! |
I changed it in the std::filesystem part Then I run astyle, and should be ready |
You are right, those are also for C. So we can either keep it as is or maybe you can put explicit reinterpret_cast in the filesystem part, just because it's clearer... |
i changed CAST to REINTERPRET_CAST, so it is clearer, and in the c++ parts I wrote it explicitly |
The changes should not be accepted, using clang12 for compiling raises a warning about some of the cast to be undefined behaviour. I think I should address this before considering the work done |
I think I solved the issue, I do not get anymore the UB warnings. And the solution should be compatible with C++98 |
@Iximiel I think I can merge this, but you should first make it "not draft" I think |
Description
I removed the old-style casts in Plumed.h.
Now when Plumed.h is in "c++ mode" will use static_cast or reintrpet_cast
I used
-Werror=old-style-cast
to find the casts and i changed to static when gcc suggested to change to static and reintepret otherwise or when no suggestion were made.I am not 100% sure to have changed every casts, but at least the ones that affects the gromacs compilation are done plus some more found with searching
\(.*?\)\w
.Target release
I would like my code to appear in release 2.10
Type of contribution
Copyright
COPYRIGHT
file with the correct license information. Code should be released under an open source license. I also used the commandcd src && ./header.sh mymodulename
in order to make sure the headers of the module are correct.Tests