2014-04-16 2 views
0

개체 rvalue 참조를 반환하는 간단한 함수를 썼다.하지만 작동하지 right.But 내가 사용하는 std :: move 작업, 나는 유일한 차이가 remove_reference 또는 무엇입니까? 또는 rvalue에 대한 내 캐스팅이 잘못 되었습니까? 하지를 rvalue - 당신이 mymove에있어 무엇차이점은 무엇입니까 remove_reference 또는없이


template<class _Ty> inline 
    typename remove_reference<_Ty>::type&& 
     move(_Ty&& _Arg) _NOEXCEPT 
    { // forward _Arg as movable 
    return ((typename remove_reference<_Ty>::type&&)_Arg); 
    } 
+1

어떻게 사용합니까? –

답변

1

template<class T> 
T&& mymove(T &&obj) 
{ 
    return (T&&)obj; 
} 
보편적 참조입니다.
T&& -> T&& 
T&& & -> T& 
T& && -> T& 
T&& && -> T&& 

당신이 mymove에 좌변을 전달하면

, 당신은 모두 인자로 lvalues를 얻을 수와 유형을 반환하려고 :

참조 붕괴의 규칙

이있다. 그래서 mymovestd::move과 같은 방식으로 작동하지 않습니다.