http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57064
--- Comment #3 from Thiago Macieira <thiago at kde dot org> 2013-04-25 00:53:20 UTC --- One more note. Given: void p(A &); void p(A &&); void f(A &&a) { p(a); } like the member function case, this calls p(A &). It's slightly surprising at first glance, but is a known and documented case. Unlike the member function case, if you do p(std::move(a)); it will call p(A &&).