title: C++ execution order in method chaining
body: <p>The output of this program:</p>
  
  <pre><code>#include &lt;iostream&gt; 
  class c1
  {   
    public:
      c1&amp; meth1(int* ar) {
        std::cout &lt;&lt; "method 1" &lt;&lt; std::endl;
        *ar = 1;
        return *this;
      }
      void meth2(int ar)
      {
        std::cout &lt;&lt; "method 2:"&lt;&lt; ar &lt;&lt; std::endl;
      }
  };
  
  int main()
  {
    c1 c;
    int nu = 0;
    c.meth1(&amp;nu).meth2(nu);
  }
  </code></pre>
  
  <p>Is:</p>
  
  <pre><code>method 1
  method 2:0
  </code></pre>
  
  <p>Why is <code>nu</code> not 1 when <code>meth2()</code> starts?</p>