title: Passing a structure as a template-parameter - How can I fix this code?
body: <p>I'm trying to compile the following code under VC2010.</p>
  
  <pre><code>struct CircValRange
  {
      double a,b; // range: [a,b)
  };
  
  template &lt;struct CircValRange* Range&gt;
  class CircVal
  {
      // todo
  };
  
  
  const CircValRange SignedDegRange= {-180., 180.};
  
  CircVal&lt;SignedDegRange&gt; x;
  </code></pre>
  
  <p>I'm getting </p>
  
  <pre><code>error C2970: 'CircVal' : template parameter 'Range' : 'SignedDegRange' : an expression involving objects with internal linkage cannot be used as a non-type argument
  1&gt;          d:\4\circval\circval\circval.h(8) : see declaration of 'CircVal'
  1&gt;          d:\4\circval\circval\circval.h(13) : see declaration of 'SignedDegRange'
  </code></pre>
  
  <p>I am trying to define a templated class CircVal that will receive a struct Range as the templated parameter.</p>
  
  <p>I don't want it to be possible to assign classes with one range to classes with another range (I want them to be different types).</p>
  
  <p>How can I do it?</p>