http://cpplover.blogspot.jp/2009/11/rvalue-reference_23.html?m=1
たとえば↑のサイトでは、テンプレート関数の引数が左辺値か右辺値かで分ける例があったんですが

template < typename T >
void f( T && t )
{
  if ( std::is_lvalue_reference<T>::value )     X x( t ) ;   else     X x( std::move(t) ) ;
}

このelse側のtは既に右辺値だからstd::moveする必要がないように思います