title: Disable warning at a specific place in Intel Compiler
body: <p>I have a mathematical vector, whose dimensions I define with a template parameter <code>int N</code>. The problem is that I add to many parameters at the constructor for up to N=9, g++ was OK with this, but the Intel compiler is complaining about this with a warning</p>
  
  <p>warning #175: subscript out of range</p>
  
  <p>Yes, the subscript is out of range as it appears, but no, it's not gonna cause a problem, because it's written like this:</p>
  
  <pre><code>template &lt;int N, typename T&gt;
  Vector&lt;N,T&gt;::Vector(T val0, T val1, T val2, T val3, T val4, T val5, T val6, T val7, T val8, T val9)
  {
      for(int i = 0; i &lt; N; i++)
      {
          _values[i] = T();
      }
      _values[0] = val0;
      if(N &gt; 1)
          _values[1] = val1;
      if(N &gt; 2)
          _values[2] = val2;
      if(N &gt; 3)
          _values[3] = val3;
      if(N &gt; 4)
          _values[4] = val4;
      if(N &gt; 5)
          _values[5] = val5;
      if(N &gt; 6)
          _values[6] = val6;
      if(N &gt; 7)
          _values[7] = val7;
      if(N &gt; 8)
          _values[8] = val8;
      if(N &gt; 9)
          _values[9] = val9;
  }
  </code></pre>
  
  <p>where N is the dimensionality, like I mentioned, and T is the data type. So the Intel compiler isn't smart enough to realize that this won't cause any problem since I don't access the element unless the the index is valid. </p>
  
  <p>The question is: How can I tell the compiler with something like a macro/pre-compiler commands that it should not issue warning #175 for those lines? Notice that disabling warning #175 completely wouldn't be smart, though I could still do a real error somewhere else; I just want to disable it for this region of code.</p>
  
  <p>Thanks for any efforts.</p>