복사지
const 달린걸 무슨수로 이동시켜서 박살내냐
rvalue 인자를 const ref 매개변수로 넘긴 거 아님?
참조를 받는데 복사가 됨?
아니 넘기는건 당연히 참조지
그걸 &&처럼 이동시킬 방법은 없잖아
그래서 이동이냐 복사냐 물어보니 복사라고 한거
이동 복사 둘다 아니고 참조라고 했어야지 ㄲㅈ
함수안쪽 물어보는줄 알았는데
넘기는거야 값이랑 참조 둘뿐이자너
move 를 해야 rvalue가 되는건데 - dc App
그냥 rvalue 객체(임시객체)의 수명이 연장되고 넘어가는 그것의 참조임
ㄴ 얘처럼 말했어야지
넘어가는 그것의 -> 넘어가는 것은 그것의
const reference 자체가 이미 이름이 있는 객체여서 명시적 캐스팅이 아닌 이상 r-value로 바인딩 되지 않습니다.
그래서 std::move 가 필요한것이죠. 좀더 범용적인 함수를 원하신다면 std::forward 가 필요합니다.
r-value의 뿌리는 임시객체를 효율적으로 다루기 위함에 존재하지요 ㅎ
복사지
const 달린걸 무슨수로 이동시켜서 박살내냐
rvalue 인자를 const ref 매개변수로 넘긴 거 아님?
참조를 받는데 복사가 됨?
아니 넘기는건 당연히 참조지
그걸 &&처럼 이동시킬 방법은 없잖아
그래서 이동이냐 복사냐 물어보니 복사라고 한거
이동 복사 둘다 아니고 참조라고 했어야지 ㄲㅈ
함수안쪽 물어보는줄 알았는데
넘기는거야 값이랑 참조 둘뿐이자너
move 를 해야 rvalue가 되는건데 - dc App
그냥 rvalue 객체(임시객체)의 수명이 연장되고 넘어가는 그것의 참조임
ㄴ 얘처럼 말했어야지
넘어가는 그것의 -> 넘어가는 것은 그것의
const reference 자체가 이미 이름이 있는 객체여서 명시적 캐스팅이 아닌 이상 r-value로 바인딩 되지 않습니다.
그래서 std::move 가 필요한것이죠. 좀더 범용적인 함수를 원하신다면 std::forward 가 필요합니다.
r-value의 뿌리는 임시객체를 효율적으로 다루기 위함에 존재하지요 ㅎ