title: What is the purpose of the Most Vexing Parse?
body: <p>On <a href="http://en.wikipedia.org/wiki/Most_vexing_parse" rel="noreferrer">Wikipedia</a> I found this:</p>
  <pre><code>A a( A() );
  </code></pre>
  <blockquote>
  <p>[This] could be disambiguated either as<br></p>
  </blockquote>
  <blockquote>
  <ol>
  <li>a variable definition of class [<code>A</code>], taking an anonymous instance of class [<code>A</code>] or</li>
  </ol>
  </blockquote>
  <blockquote>
  <ol start="2">
  <li>a function declaration for a function which returns an object of type [<code>A</code>] and takes a single (unnamed) argument which is a function returning type [<code>A</code>] (and taking no input).</li>
  </ol>
  </blockquote>
  <blockquote>
  <p>Most programmers expect the first, <strong>but the C++ standard requires it to be interpreted as the second.</strong></p>
  </blockquote>
  <p>But why? If the majority of the C++ community expects the former behavior, why not make it the standard? Besides, the above syntax is consistent if you <em>don't</em> take into account the parsing ambiguity.</p>
  <p>Can someone please enlighten me? Why does the standard make this a requirement?</p>