-
Notifications
You must be signed in to change notification settings - Fork 243
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
Delete functions instead of using CVC4_UNDEFINED #1794
Conversation
C++11 supports explicitly deleting functions that should not be used (explictly or implictly), e.g. copy or assignment constructors. We were previously using the CVC4_UNDEFINED macro that used a compiler-specific attribute. The C++11 feature should be more portable.
Great, I guess we have another reason to switch to SWIG 3 (it looks like SWIG 2 has issues with |
You have already brought up SWIG. It is my biggest concern with making this type of change. Please make sure to additionally test building the java examples as well as building from scratch before checking this in. |
Alright, so it turns out that CVC4 builds with Swig 3. I am not sure what happened to the earlier issues that we were seeing (#1535). After updating Travis to use Swig 3, the tests pass now and we know about at least one person that is using Swig 3 successfully in production. I think that we can move forward with this PR. |
What is the status of swig 3 on some of the common linux distributions? Debian stable being the likely slow track. (Also mac?) We also might choose to not care about supporting slower moving platforms for being able to compile language bindings at this point. If we need to make that choice, I would rope in @barrettcw . |
Debian stable has swig3, which was introduced with Debian stretch last year. |
@barrettcw gave his approval just now. macOS (homebrew) does not even provide Swig 2 anymore, we had to provide our own formula for that, so Swig 3 makes things easier. |
C++11 supports explicitly deleting functions that should not be used
(explictly or implictly), e.g. copy or assignment constructors. We were
previously using the CVC4_UNDEFINED macro that used a compiler-specific
attribute. The C++11 feature should be more portable.
@timothy-king: I'm adding you as a reviewer because this could be of interest to you.