Skip to content
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

A variety of compile fixes which appear when legacy is disabled #1651

Merged
merged 11 commits into from
Jan 12, 2024

Conversation

dzenanz
Copy link
Contributor

@dzenanz dzenanz commented Jan 11, 2024

Assorted compile fixes and update to the latest ITK. This is a follow-up to #1650.

Fixes the following compile error:

antsRegistration2DDouble.cxx
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: 'bool ants::VectorPixelCompare<RealType,1>::operator ()(const itk::Vector<TPixel,1> &,const itk::Vector<TPixel,1> &) const': cannot convert argument 1 from 'const _Kty' to 'const itk::Vector<TPixel,1> &' [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: with [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: [ [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: TPixel=RealType [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: ] [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: and [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: [ [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: _Kty=itk::NumericTraits<double>::RealType [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: ] [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: and [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: [ [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: TPixel=RealType [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17): error C2664: ] [C:\Dev\ANTs-VS22\ANTS-build\Examples\antsUtilities.vcxproj]
  (compiling source file '../../../ANTs/Examples/antsRegistration2DDouble.cxx')
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17):
  Reason: cannot convert from 'const _Kty' to 'const itk::Vector<TPixel,1>'
          with
          [
              _Kty=itk::NumericTraits<double>::RealType
          ]
          and
          [
              TPixel=RealType
          ]
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17):
  Constructor for class 'itk::Vector<TPixel,1>' is declared 'explicit'
          with
          [
              TPixel=RealType
          ]
  C:\Dev\ANTs\Examples\antsUtilities.h(376,3):
  see declaration of 'ants::VectorPixelCompare<RealType,1>::operator ()'
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17):
  while trying to match the argument list '(const _Kty, const _Keyty)'
          with
          [
              _Kty=itk::NumericTraits<double>::RealType
          ]
          and
          [
              _Keyty=double
          ]
  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1610,17):
  the template instantiation context (the oldest one first) is
  	C:\Dev\ANTs\Examples\antsRegistration2DDouble.cxx(10,10):
  	see reference to function template instantiation 'int ants::DoRegistration<double,2>(itk::ants::CommandLineParser::Pointer &)' being compiled
  	C:\Dev\ANTs\Examples\make_interpolator_snip.tmpl(124,1):
  	see reference to class template instantiation 'itk::LabelImageGaussianInterpolateImageFunction<ImageType,RealType,CompareType>' being compiled
  	C:\Dev\ITK-git\Modules\Core\ImageFunction\include\itkLabelImageGaussianInterpolateImageFunction.hxx(41,1):
  	while compiling class template member function 'TOutput itk::LabelImageGaussianInterpolateImageFunction<ImageType,RealType,CompareType>::EvaluateAtContinuousIndex(const itk::ContinuousIndex<TCoordRep,2> &,TOutput *) const'
          with
          [
              TOutput=itk::NumericTraits<double>::RealType,
              TCoordRep=double
          ]
  		C:\Dev\ITK-git\Modules\Core\ImageFunction\include\itkLabelImageGaussianInterpolateImageFunction.h(117,5):
  		see the first reference to 'itk::LabelImageGaussianInterpolateImageFunction<ImageType,RealType,CompareType>::EvaluateAtContinuousIndex' in 'itk::LabelImageGaussianInterpolateImageFunction<ImageType,RealType,CompareType>::EvaluateAtContinuousIndex'
  	C:\Dev\ITK-git\Modules\Core\ImageFunction\include\itkLabelImageGaussianInterpolateImageFunction.hxx(61,17):
  	see reference to class template instantiation 'std::map<TOutput,itk::NumericTraits<double>::RealType,TPixelCompare,std::allocator<std::pair<const TOutput,itk::NumericTraits<double>::RealType>>>' being compiled
          with
          [
              TOutput=itk::NumericTraits<double>::RealType,
              TPixelCompare=CompareType
          ]
  	C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\map(72,20):
  	see reference to class template instantiation 'std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>' being compiled
          with
          [
              _Kty=itk::NumericTraits<double>::RealType,
              _Ty=itk::NumericTraits<double>::RealType,
              _Pr=CompareType,
              _Alloc=std::allocator<std::pair<const itk::NumericTraits<double>::RealType,itk::NumericTraits<double>::RealType>>
          ]
  	C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1370,25):
  	while compiling class template member function 'std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const TOutput,itk::NumericTraits<double>::RealType>>>> std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::find(const double &)'
          with
          [
              TOutput=itk::NumericTraits<double>::RealType,
              _Kty=itk::NumericTraits<double>::RealType,
              _Ty=itk::NumericTraits<double>::RealType,
              _Pr=CompareType,
              _Alloc=std::allocator<std::pair<const itk::NumericTraits<double>::RealType,itk::NumericTraits<double>::RealType>>
          ]
  		C:\Dev\ITK-git\Modules\Core\ImageFunction\include\itkLabelImageGaussianInterpolateImageFunction.hxx(74,36):
  		see the first reference to 'std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::find' in 'itk::LabelImageGaussianInterpolateImageFunction<ImageType,RealType,CompareType>::EvaluateAtContinuousIndex'
          with
          [
              _Kty=itk::NumericTraits<double>::RealType,
              _Ty=itk::NumericTraits<double>::RealType,
              _Pr=CompareType,
              _Alloc=std::allocator<std::pair<const itk::NumericTraits<double>::RealType,itk::NumericTraits<double>::RealType>>
          ]
  		C:\Dev\ITK-git\Modules\Core\ImageFunction\include\itkLabelImageGaussianInterpolateImageFunction.h(117,5):
  		see the first reference to 'itk::LabelImageGaussianInterpolateImageFunction<ImageType,RealType,CompareType>::EvaluateAtContinuousIndex' in 'itk::LabelImageGaussianInterpolateImageFunction<ImageType,RealType,CompareType>::EvaluateAtContinuousIndex'
  	C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1371,25):
  	see reference to function template instantiation 'std::_Tree_node<std::pair<const TOutput,itk::NumericTraits<double>::RealType>,std::_Default_allocator_traits<_Alloc>::void_pointer> *std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::_Find<double>(const _Other &) const' being compiled
          with
          [
              TOutput=itk::NumericTraits<double>::RealType,
              _Alloc=std::allocator<std::pair<const itk::NumericTraits<double>::RealType,itk::NumericTraits<double>::RealType>>,
              _Kty=itk::NumericTraits<double>::RealType,
              _Ty=itk::NumericTraits<double>::RealType,
              _Pr=CompareType,
              _Other=double
          ]
  	C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\include\xtree(1361,50):
  	see reference to function template instantiation 'std::_Tree_find_result<std::_Tree_node<std::pair<const TOutput,itk::NumericTraits<double>::RealType>,std::_Default_allocator_traits<_Alloc>::void_pointer> *> std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>::_Find_lower_bound<_Other>(const _Keyty &) const' being compiled
          with
          [
              TOutput=itk::NumericTraits<double>::RealType,
              _Alloc=std::allocator<std::pair<const itk::NumericTraits<double>::RealType,itk::NumericTraits<double>::RealType>>,
              _Kty=itk::NumericTraits<double>::RealType,
              _Ty=itk::NumericTraits<double>::RealType,
              _Pr=CompareType,
              _Other=double,
              _Keyty=double
          ]
I don't know whether this is the right thing to do.
I was primarily trying to get it to compile.
Message:

C:\Dev\ANTs\Examples\AverageAffineTransform.cxx(314,40): warning C4101: 'e': unreferenced local variable [C:\Dev\ANTs-SB\ANTS-build\Examples\l_AverageAffineTransform.vcxproj]
@dzenanz dzenanz marked this pull request as draft January 11, 2024 20:13
@cookpa
Copy link
Member

cookpa commented Jan 11, 2024

Thanks for these updates @dzenanz

Example message:

C:\Dev\ANTs\ImageRegistration\itkAvantsMutualInformationRegistrationFunction.cxx(368,54): warning C4834: discarding return value of function with [[nodiscard]] attribute [C:\Dev\ANTs-SB\ANTS-build\Examples\l_ANTS.vcxproj]

Also use the new-style enums.
@dzenanz
Copy link
Contributor Author

dzenanz commented Jan 12, 2024

This finally builds cleanly.

@cookpa cookpa merged commit 62550fc into ANTsX:master Jan 12, 2024
1 check passed
@cookpa
Copy link
Member

cookpa commented Jan 12, 2024

Awesome, thanks!

@dzenanz dzenanz deleted the compFixes branch January 12, 2024 20:38
@ntustison
Copy link
Member

Yes, thank you very much @dzenanz .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants