I understand that we get in a mess with different compilers not supporting the standard with cross platform code so MSVC should be changed.<p>But with respect to binding RValues to LValue references, why is the MSVC way not the standard?  At first glance the MSVC way appears way more intuitive.<p>For instance if I have code:
update_X(X());
I would expect to be able to refactor it to this safely:
{
  X x;
  update_X(x); 
}