- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 710
 
Description
- Pull request WIP (Not ready): Add 
GradientImageFilter::OverrideBoundaryCondition(std::unique_ptr<BoundaryConditionType>)#4533 currently fails on both ITK.Linux.Python and ITK.macOS.Python, and it seems to be caused by the lack ofstd::unique_ptrsupport by SWIG 4.0.2. Which is the current SWIG version on the ITK master branch: 
ITK/Wrapping/Generators/SwigInterface/CMakeLists.txt
Lines 17 to 18 in ac1ebe6
| set(swig_version_min 4.0.2) | |
| set(ITK_SWIG_VERSION 4.0.2) | 
std::unique_ptr is an essential utility to prevent memory leaks, as well as multiple delete's on one pointer (which would cause undefined behavior, possibly leading to crashes). It is also useful as function parameter type, to indicate that the function takes ownership of the object that is passed as argument.
SWIG 4.1.0 (released in 2022) appears to be the first version to support std::unique_ptr: https://sourceforge.net/p/swig/news/2022/10/swig-410-released/
The most recent release is version 4.2.1. That version appears to have even more modern C++ support: https://swig.org
Can you please upgrade SWIG? At least to version 4.1.0, but the latest version appears even better 😃
For the record, SimpleITK is currently at SWIG version 4.1.1: https://github.com/SimpleITK/SimpleITK/blob/8e29d4902cdbc91b03578fa654b06d868b08f03c/SuperBuild/External_Swig.cmake#L22