title: How is `int main(int argc, char* argv<::>)` a valid signature of main?
body: <p>I've seen in a site that <code>int main(int argc, char* argv&lt;::&gt;)</code> can also be used as a signature of <code>main</code>. Surprisingly, The following program:</p>
  
  <pre><code>int main(int argc, char* argv&lt;::&gt;)
  {
    return 0;
  }
  </code></pre>
  
  <p>compiles withput any warnings in GCC , as well as clang. It also compiles in C++.</p>
  
  <p>So, how is it that <code>int main(int argc, char* argv&lt;::&gt;)</code> is a valid signature of <code>main</code>?</p>