title: Why is the order of evaluation for function parameters unspecified in c++?
body: <p>The standard doesn't specify the order of evaluation of arguments with this line:</p>
  
  <blockquote>
    <p>The order of evaluation of arguments is unspecified.</p>
  </blockquote>
  
  <p>What does</p>
  
  <blockquote>
    <p>Better code can be generated in the absence of restrictions on
    expression evaluation order</p>
  </blockquote>
  
  <p>imply? </p>
  
  <p>What is the drawback in asking all the compilers to evaluate the function arguments Left to Right for example? What kinds of optimizations do compilers perform because of this unspecified spec?</p>