title: Ill-formed static-cast interpretation
body: <p>I've come across with the follwing code (sec. 5.4/4 N3797):</p>
  
  <pre><code>struct A { };
  struct I1 : A { };
  struct I2 : A { };
  struct D : I1, I2 { };
  A* foo( D* p ) {
      return (A*)( p ); // ill-formed static_cast interpretation
  }
  </code></pre>
  
  <p>I have been trying to understand the example, but I can't. I haven't used <code>static_cast</code> in the example at all. How does it relate to <code>static_cast</code>. In general, would you explain the point of the error.</p>