title: Get rid of "type qualifier" warnings on functions using the restrict keyword
body: <p>I'm trying to clean up warnings that I'm getting when compiling Blitz++ of the form:</p>
  
  <pre><code>/opt/local/include/blitz/tinyvec2.h:261:35: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
  /opt/local/include/blitz/tinyvec2.h:264:43: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 
  /opt/local/include/blitz/tinyvec2.h:267:40: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
  &lt;&lt;etc.&gt;&gt;
  </code></pre>
  
  <p>From these kinds of member functions (of the <code>TinyVector</code> class)</p>
  
  <pre><code>T_numtype * restrict data()    // line 261                      
      { return data_; }          // data is a member that is an array of data values
  
  const T_numtype * restrict data() const       // line 264       
      { return data_; }       
  </code></pre>
  
  <p>As far as I can tell I am getting the warnings due to the <code>restrict</code> keyword.  Note: there are macros that should replace the <code>restrict</code> with <code>__restrict__</code> (which g++ understands).</p>
  
  <p>I can get rid of the warnings by deleting the keywords; however, since this is supposed to be a high-performance numerical library, I don't want to lose any compiler optimizations that the <code>restrict</code> keywords are allowing.</p>
  
  <p>What can I do to suppress these warnings without just dropping the <code>restrict</code>'s altogether, and while keeping <code>-Wall</code> on?</p>