How do temporary objects get created during reference initialization by the compiler, and what does that mean?
EDIT
From the C++ standard:
12.2 Temporary objects [class.temporary] Temporaries of class type are created in various contexts: binding a reference to a prvalue (8.5.3), returning 1 a prvalue (6.6.3), a conversion that creates a prvalue (4.1, 5.2.9, 5.2.11, 5.4), throwing an exception (15.1), entering a handler (15.3), and in some initializations (8.5).
From this link: http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Fcplr382.htm
When a temporary object is created to initialize a reference variable, the name of the temporary object has the same scope as that of the reference variable.