title: C++ local variable destruction order
body: <p>Is there a defined order in which local variables are deallocated in C++ (11) ?
  To be more concise: In which order will side effects of the destructors of two local variables in the same scope become visible?</p>
  
  <p>e.g.:</p>
  
  <pre><code>struct X{
    ~X(){/*do something*/}
  }
  
  int main(){
     X x1;
     X x2;
     return 0;
  }
  </code></pre>
  
  <p>Is <code>x1</code> or <code>x2</code> destroyed first when main returns or is the order undefined in C++11?</p>