title: What is the reason C++ doesn't add `std::vector<std::string>` "overload" as argument to `main()`?
body: <p>Is there any fundamental reason why the new C++17 (or later) won't allow for an alternative way of writing <code>main</code> as</p>
  
  <pre><code>int main(std::vector&lt;std::string&gt; args){...}
  </code></pre>
  
  <p>? I know that one needs compatibility with previous code, so </p>
  
  <pre><code>int main(int, char**) 
  </code></pre>
  
  <p>still has to exist, but is there anything technical that prevents the first "alternative" declaration?</p>