http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57064



--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> 2013-04-25 06:19:35 
UTC ---

(In reply to comment #0)

> Now suppose the following function:

> 

> void g(A &&a)

> {

>     a.p();

> }

> 

> Which overload should GCC call? This is my request for clarification. I

> couldn't find anything specific in the standard that would help explain one 
> way

> or the other.

> 

> Intuitively, it would be the rvalue overload, but gcc calls the lvalue 
> overload

> instead.



As you note in a further comment, a named rvalue reference acts as an lvalue.



> Making it:

> 

>     std::move(a).p();

> 

> Does not help.



It does for me...

Reply via email to