<div dir="ltr"><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">I am working on an interface between some current data and ITK, and ran into an issue.</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">

When my data has const pixels, I hoped to obtain an itk::Image with const pixels also.  I was also looking for a shallow-copy-type solution, which led me to use the itkImportImageFilter.  But it won't compile, because of a casting problem down in the PrintSelf() function of the itkImportImageContainer.  Attached is a modified and stripped down copy of the example program Image5.cxx that exhibits the problem.</div>

<div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">The error is:</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">

<br>1> C:\itk\itkimportimagecontainer.hxx(220): error C2440: 'static_cast' : cannot convert from 'const unsigned char *const ' to 'void *'<br>1> Conversion loses qualifiers<br>1> C:\itk\itkimportimagecontainer.hxx(217) : while compiling class template member function 'void itk::ImportImageContainer<TElementIdentifier,TElement>::PrintSelf(std::ostream &,itk::Indent) const'<br>

1> with<br>1> [<br>1> TElementIdentifier=unsigned long,<br>1> TElement=const unsigned char<br>1> ]<br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">

The function that is referenced is in itkimportimagecontainer.hxx:</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><pre style="white-space:pre-wrap;font-size:13px;font-family:Consolas"><span style="color:blue">template</span>< <span style="color:blue">typename</span> TElementIdentifier, <span style="color:blue">typename</span> TElement >
<span style="color:blue">void</span>
ImportImageContainer< TElementIdentifier, TElement >
::PrintSelf(std::ostream & os, Indent indent) <span style="color:blue">const</span>
{
  Superclass::PrintSelf(os, indent);

  os << indent << <span style="color:rgb(163,21,21)">"Pointer: "</span> << <span style="color:blue">static_cast</span>< <span style="color:blue">void</span> * >( m_ImportPointer ) << std::endl;
  os << indent << <span style="color:rgb(163,21,21)">"Container manages memory: "</span>
     << ( m_ContainerManageMemory ? <span style="color:rgb(163,21,21)">"true"</span> : <span style="color:rgb(163,21,21)">"false"</span> ) << std::endl;
  os << indent << <span style="color:rgb(163,21,21)">"Size: "</span> << m_Size << std::endl;
  os << indent << <span style="color:rgb(163,21,21)">"Capacity: "</span> << m_Capacity << std::endl;
}</pre><pre style="white-space:pre-wrap;font-size:13px;font-family:Consolas">I am currently compiling on Win64 using Visual Studio 2010 Professional. (But I also will be compiling this on G++ on both solaris and Linux...)</pre>

</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">Is this a bug that should be addressed? Or...</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">Is there an easier way to do what I'd like to do?</div>

<div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">Thanks,</div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">

Andrew</div></div>