Description of problem: [18:03:50 pal@underdark ~/tmp/1]$ cat a.cpp #include <utility> class A { }; static void g ( A && ) { } template < class T > class B { public: void f ( ) { A a; g ( std :: move ( a ) ); } }; ================= [18:04:13 pal@underdark ~/tmp/1]$ LANG=C g++ -std=c++0x -pedantic -c a.cpp a.cpp: In member function 'void B<T>::f()': a.cpp:11:25: error: invalid initialization of reference of type 'A&&' from expression of type 'std::remove_reference<A&>::type' a.cpp:5:13: error: in passing argument 1 of 'void g(A&&)' ================= error can be fixed by removing -pedantic or by commenting out /*template < class T > */
Added to upstream BZ.