title: What does char(*)[int] mean in C++?
body: <p>I'm reading <a href="http://en.cppreference.com/w/cpp/language/sfinae" rel="nofollow">this article on SFINAE</a> and I find this fun pair of functions:</p>
  
  <pre><code>template&lt;int I&gt; void div(char(*)[I % 2 == 0] = 0) {
      // this overload is selected when I is even
  }
  template&lt;int I&gt; void div(char(*)[I % 2 == 1] = 0) {
      // this overload is selected  when I is odd
  }
  </code></pre>
  
  <p>This works well (g++-4.9), but I don't really understand the type of the parameter  (the <code>char(*)[int]</code> -part.). Anyone else who does?</p>