<div dir="ltr">Hello Insight-users,<div><br></div><div>I'm trying to print an itk::LightObject-derived class with something like:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><font face="courier new, monospace">MyClass::Pointer fooBar = MyClass::New();</font></div>
<div><font face="courier new, monospace">std::cout << *fooBar;</font></div></blockquote><div><br></div><div>But it doesn't seem to be possible because the declaration of operator<< is not exposed in itkLightObject.h (although one is defined in itkLightObject.cxx). I know I can use fooBar->Print(std::cout), but this doesn't work when I'm trying to print to a logging system that was designed to support any object with an overloaded operator<< defined. I am able to get things to work by defining the operator myself:</div>
<div><div><br></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><font face="courier new, monospace">namespace std</font></div></div><div><div><font face="courier new, monospace">{</font></div>
</div><div><div><font face="courier new, monospace">ostream &</font></div></div><div><div><font face="courier new, monospace">operator<<(ostream & os, const itk::LightObject & o)</font></div></div><div><div>
<font face="courier new, monospace">{</font></div></div><div><div><font face="courier new, monospace">   o.Print(os);</font></div></div><div><div><font face="courier new, monospace">   return os;</font></div></div><div><div>
<font face="courier new, monospace">}</font></div></div><div><div><font face="courier new, monospace">}</font></div></div></blockquote><div><div><br></div><div>But is this the intended usage?</div><div><br></div><div>Thanks,</div>
<div>Taylor</div></div></div>