title: Cast pointer to fixed-size array in return statement
body: <p>The simplest way to ask this question is with some code:</p>
  
  <pre><code>struct Point
  {
      int x;
      int y;
      int z;
  
      int* as_pointer() { return &amp;x; }        // works
      int (&amp;as_array_ref())[3] { return &amp;x; } // does not work   
  };
  </code></pre>
  
  <p><code>as_pointer</code> compiles, <code>as_array_ref</code> does not. A cast seems to be in order but I can't figure out the appropriate syntax. Any ideas?</p>