title: PODs, non-PODs, rvalue and lvalues
body: <p>Could anyone explain the details in terms of rvalues, lvalues, PODs, and non-PODs the reason why the first expression marked below is <strong>not</strong> ok while the second expression marked below is ok? In my understanding both int() and A() should be rvalues, no? </p>
  
  <pre><code>
  struct A {};
  
  int main()
  {
    int i;
    A a;
  
    int() = i; //Not OK (error).
    A() = a; //OK.
  
    return 0;
  }
  
  </code></pre>