title: Can main() have an auto deduced return type?
body: <p>My initial conjecture was that since <code>main</code> doesn't <a href="http://ideone.com/q0QFyT" rel="nofollow"><strong>need</strong></a> an explicit return statement (0 will be returned implicitly) : </p>
  
  <pre><code>int main() 
  { // This is vaild C++
      cout &lt;&lt; "OK\n"; 
  }
  </code></pre>
  
  <p>An auto deduced return type could be used without a return statement</p>
  
  <pre><code>auto main() 
  { // This is vaild C++
      cout &lt;&lt; "OK\n"; 
      // pick up the type from an implicit : 
      // return 0;
  }
  </code></pre>
  
  <p>To my surprise though, not even when <code>return 0</code> is used, can such a main <a href="http://coliru.stacked-crooked.com/a/dad4491d1b397082" rel="nofollow"><strong>compile</strong></a>:</p>
  
  <pre><code>auto main ()
  {
      std::cout &lt;&lt; "OK I'm working" &lt;&lt; std::endl;
      return 0;
  }
  </code></pre>
  
  <p><strong>Why is that ?</strong></p>