title: cout printing in reverse order
body: <p>Trying overloading operator() in the following example:</p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  
  class Fib {
    public:
      Fib() : a0_(1), a1_(1) {}
      int operator()();
    private:
      int a0_, a1_;
  };
  int Fib::operator()() {
      int temp = a0_;
      a0_ = a1_;
      a1_ = temp + a0_;
      return temp;
  }
  
  int main() {
      Fib fib;
  
      cout &lt;&lt; fib() &lt;&lt;"," &lt;&lt; fib() &lt;&lt; "," &lt;&lt; fib() &lt;&lt; "," &lt;&lt; fib() &lt;&lt; "," &lt;&lt; fib() &lt;&lt; "," &lt;&lt; fib() &lt;&lt; endl;
  }
  </code></pre>
  
  <p>It prints the fib sequence in the reverse order as 8,5,3,2,1,1. I understand the states are kept in () overlading but why the printing is showing up in the reverse order? </p>