MMDevice: Allow compilation with C++17 #489
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This allows individual device adapters to be compiled with C++17 (as opposed to our current default of C++14) without encountering warnings or errors due to obsolete dynamic exception specifications (which we still keep for use by our SWIG Java bindings).
See #159 for more on C++17 support status.
Remove pointless
throw ()
from two functions.Wrap remaining dynamic exception specifications (2 occurrences) in a macro, which expands to nothing unless read by SWIG.
Removed the warning suppressions related to dynamic exception specifications.
Confirmed, using japicmp, that the MMCoreJ API did not change (tested with SWIG 3, Linux).
There is no C++ MMDevice ABI change because dynamic exception specifications are not part of the ABI (so no increment of device interface version).