[Insight-developers] RE: ShapedNeighborhoodIterators

Joshua Cates cates at sci . utah . edu
Tue, 27 May 2003 14:50:39 -0600 (MDT)


Jim,

Assignment operators on the shaped iterators should be working properly 
now.  Let me know if you run into any more problems.

Josh.


On Tue, 27 May 2003, Miller, James V (Research) wrote:

> Josh,
> 
> First problem encountered using the ShapedIterators. I cannot do a 
> 
> ConstShapedNeighbhorhoodIterator nIt;
> 
> I get a compiler error for operator=() saying that "A reference that is not
> to 'const' cannot be bound to a non-lvalue".  This is with VC .NET.  
> 
> c:\projects\I2\Insight\Code\Common\itkConstShapedNeighborhoodIterator.h(232)
> : error C2440: 'return' : cannot convert from
> 'itk::NeighborhoodIterator<TImage,TBoundaryCondition>::Self' to
> 'itk::ConstShapedNeighborhoodIterator<TImage,TBoundaryCondition>::Self &'
>         with
>         [
>             TImage=InputImageType,
>  
> TBoundaryCondition=itk::ZeroFluxNeumannBoundaryCondition<InputImageType>
>         ]
>         and
>         [
>             TImage=InputImageType,
>  
> TBoundaryCondition=itk::ZeroFluxNeumannBoundaryCondition<InputImageType>
>         ]
>         A reference that is not to 'const' cannot be bound to a non-lvalue
>  
> c:\projects\I2\Insight\Code\Common\itkConstShapedNeighborhoodIterator.h(232)
> : while compiling class-template member function
> 'itk::ConstShapedNeighborhoodIterator<TImage,TBoundaryCondition>::Self
> &itk::ConstShapedNeighborhoodIterator<TImage,TBoundaryCondition>::operator
> =(const
> itk::ConstShapedNeighborhoodIterator<TImage,TBoundaryCondition>::Self &)'
>         with
>         [
>             TImage=InputImageType,
>  
> TBoundaryCondition=itk::ZeroFluxNeumannBoundaryCondition<InputImageType>
>         ]
>  
> c:\projects\I2\Insight\Code\BasicFilters\itkGrayscaleGeodesicErodeImageFilte
> r.txx(289) : see reference to class template instantiation
> 'itk::ConstShapedNeighborhoodIterator<TImage,TBoundaryCondition>' being
> compiled
>         with
>         [
>             TImage=InputImageType,
>  
> TBoundaryCondition=itk::ZeroFluxNeumannBoundaryCondition<InputImageType>
>         ]
>         C:\Program Files\Microsoft Visual Studio
> .NET\Vc7\include\xmemory(136) : while compiling class-template member
> function 'void
> itk::GrayscaleGeodesicErodeImageFilter<TInputImage,TOutputImage>::ThreadedGe
> nerateData(const
> itk::GrayscaleGeodesicErodeImageFilter<TInputImage,TOutputImage>::OutputImag
> eRegionType &,int)'
>         with
>         [
>             TInputImage=InputImageType,
>             TOutputImage=OutputImageType
>         ]
>  
> \projects\I2\Insight\Examples\Filtering\GrayscaleGeodesicErosion.cxx(116) :
> see reference to class template instantiation
> 'itk::GrayscaleGeodesicErodeImageFilter<TInputImage,TOutputImage>' being
> compiled
>         with
>         [
>             TInputImage=InputImageType,
>             TOutputImage=OutputImageType
>         ]
>