title: C++ restrict qualifier on array reference
body: <p>what is the proper way to give <code>__restrict__</code>qualifier to two-dimensional array reference?
  for example:</p>
  
  <pre><code>void function(double (&amp;)[3][3]);
  </code></pre>
  
  <p>as far as I can tell, <code>g++</code> compiles the following (but no performance difference):</p>
  
  <pre><code>void function(double (&amp; __restrict__)[3][3]);
  </code></pre>
  
  <p>is that correct?</p>
  
  <p>full segment:</p>
  
  <pre><code>template&lt;class A, class B, class C&gt;
  static void
  multiply(const A (&amp;a)[L][L], const B (&amp;b)[L][L],
          C (&amp;c)[L][L]) {
  // C (&amp;__restrict__ c)[L][L]) {
      for (size_t j = 0; j &lt; L; ++j) {
          // C __restrict__ *cj = c[j];
          for (size_t k = 0; k &lt; L; ++k) {
              double b_jk = b[j][k];
              for (size_t i = 0; i &lt; L; ++i) {
                  c[j][i] += a[k][i]*b_jk;
                  // cj[i] += a[k][i]*b_jk;
              }
          }
      }
  }
  </code></pre>