<br>Hi Baoyun,<br><br>Please find attached the fixed version of your code.<br><br>I didn&#39;t quite managed to replicate your report,...<br><br>but your troubles seems to be arising from your<br>definition of parameters in the template, and <br>
very likely from the way you are invoking the<br>function.<br><br><br>Note that the template construction that you are <br>using is quite convoluted, and error prone. <br><br>You may want to reconsider simplifying it.<br>
<br><br><br>In particular, <br>templating a function over the type of Filter types<br>is unusual.<br><br><br>Another practice that you really want to avoid is<br><br>     template &lt; class T&gt;<br>     function(  std::vector&lt; T &gt; &amp; value )<br>
<br><br><br>You could write a much cleaner version of this<br>code if you convert EmGmm into a real C++<br>class, and provide an &quot;Execute()&quot; or Compute()<br>method for it.<br><br><br>     Regards,<br><br><br>          Luis<br>
<br><br>---------------------------------------------------------------------------<br><div class="gmail_quote">On Wed, May 26, 2010 at 12:52 PM, Baoyun Li <span dir="ltr">&lt;<a href="mailto:baoyun_li123@yahoo.com">baoyun_li123@yahoo.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;" valign="top">
<div>Dear All:</div>
<div> </div>
<div>I want to add a small function into one of my template implemtation txx or cxx file. Before I add h<font face="Times New Roman">aha123(), I have no problem to build and run the project. After I add void haha123() into my txx file, I </font>had multiple defintion error at the link stage.</div>

<div> </div>
<div>Belows are my .h file and .txx file for the template function. Can somebody teach me  how to figure out this problem.</div>
<div> </div>
<div>Thanks</div>
<div> </div>
<div>baoyun</div>
<div> </div>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">############################my header file######################</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#ifndef _EmGmm_H</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#define _EmGmm_H</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#if defined(_MSC_VER)</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#pragma warning ( disable : 4786 )</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#endif</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#ifdef __BORLANDC__</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#define ITK_LEAN_AND_MEAN</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#endif</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#include &quot;itkNumericTraits.h&quot; </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">template &lt;int maximumnumberiteration,class TInputFilter,class TOutputFilter,class ParametersType,class PrototionType&gt;</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">void EmGmm( typename TInputFilter::Pointer&amp; inputfilter,typename TOutputFilter::Pointer&amp; labelreference,typename TOutputFilter::Pointer&amp; outputfilter,std::vector&lt;ParametersType&gt;&amp; initialparameters,PrototionType&amp; initialProportions,std::string savedir);</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#ifndef ITK_MANUAL_INSTANTIATION</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"><span> </span>#include &quot;EmGmm.txx&quot;</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#endif</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#endif</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">############################my TXX file##################</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#ifndef _EmGmm_TXX</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#define _EmGmm_TXX</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#include &quot;EmGmm.h&quot;</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">void haha123()</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">{</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"><span> </span>;</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">}</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">template &lt;int maximumnumberiteration,class TInputFilter,class TOutputFilter,class ParametersType,class PrototionType&gt;</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">void EmGmm( typename TInputFilter::Pointer&amp; inputfilter,typename TOutputFilter::Pointer&amp; labelreference,typename TOutputFilter::Pointer&amp; outputfilter,std::vector&lt;ParametersType&gt;&amp; initialparameters,PrototionType&amp; initialProportions,std::string savedir)</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">{</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"><span>  </span></font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"><span>  </span>///// implementation of the function</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"><span> </span>// want to call void haha123</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">}</font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman"> </font>
</p><p class="MsoNormal" style="margin: 0in 0in 0pt;"><font face="Times New Roman">#endif</font>
</p><div> </div></td></tr></tbody></table><br>

      <br>_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br>