I expect the following snippet to compile without errors (even a warning(s) should be parametrized).
As stated in [class.temporary]/5, the temporaries can be bound to non-const references too... struct A {}; A fct() { return A(); } int main(int, char**) { const A& aConstRef = fct(); // compiles: temporary bound to const reference A& aRef = fct(); // error: temporary bound to non-const reference return 0; } I called g++ wo. parameters [sparc-sun-solaris2.8]. Ben -- Summary: temporary is not bound to non-const reference Product: gcc Version: 4.0.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: istvan dot benedek dot ext at deutsche-boerse dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26191