On 1/17/07, <b class="gmail_sendername">Karthik Krishnan</b> &lt;<a href="mailto:karthik.krishnan@kitware.com">karthik.krishnan@kitware.com</a>&gt; wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<span class="q"><br></span><div><span class="q"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">valid for the integer type now.&nbsp;&nbsp;This line:<br>
<br>&nbsp;&nbsp;itkStaticConstMacro( DEFAULT_REPLICA_EXCHANGE_PROBABILITY, double, 
0.05 )<br><br>causes the following error:<br><br>MY_PATH/itkPoistatsFilter.h:375: error: enumerator value for<br>`DEFAULT_REPLICA_EXCHANGE_PROBABILITY&#39; not integer constant</blockquote></span><div><br>itkStaticConstMacro should be used only for &quot;unsigned int&quot; and &quot;int&quot; as long as ITK supports 
VS6.0, gcc &lt;= 2.95. The<br>&nbsp;</div></div></blockquote><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div>The point is that itkStaticConstMacro uses a &quot;static const&quot; on a few compilers and an &quot;enum&quot; on those where the former doesn&#39;t work.&nbsp; And enum&#39;s are integer enumerations. 
<br><br>So in the interest of portability please do not use itkStaticConstMacro for doubles.&nbsp; Just do<br><br>&nbsp; static const double DEFAULT_REPLICA_EXCHANGE_PROBABILITY = 0;</div></div></blockquote><div><br>Sorry,&nbsp; that&#39;s what&#39;s not supposed to work on VS6.. As Luis mentioned, you need to declare it in the header file, but define it in the implementation file. Something like :
<br><br>---<br></div>template &lt;typename T &gt; class foo {<br>public:<br>&nbsp; static const double D;
<br>};
<br>&nbsp;<br>template &lt; class T &gt; const double foo&lt; T &gt;::D = 0;
<br><br>int main() {&nbsp; return 0; }<br>---<br><br></div>will work just fine on all compilers<br>