강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

cgzoa님의 프로필 이미지
cgzoa

작성한 질문수

홍정모의 따라하며 배우는 C++

19.7 완벽한 전달과 std::forward

std::forward 를 사용하는 wrapper 함수의 매개변수 질문

작성

·

258

1

안녕하세요 홍정모 선생님!

이번 강의를 듣던 중, 다음과 같이 forward 로 L,R ref 를 구분해서 넘겨주는 wrapper 함수를 만들 때,

template <typename T>

void func_wrapper(T&& t)

{

//func(t);// 이대로면 l-ref 로 바껴서 들어간다.

func(std::forward<T>(t));

}

함수의 매개변수가 T&& t로 R-ref 를 받도록 만들었음에도 불구하고 구조체 s를 L-ref 로 넘겨주는 게 에러가 안 나는 이유가 궁금해요..!

MyStruct s;

func_wrapper(s);

func_wrapper(MyStruct());

답변 1

0

홍정모님의 프로필 이미지
홍정모
지식공유자

둘 다 move가 되는지 MyStruct 멤버들의 주소 체크 해보셨나요? 그리고 질문 내용이 슬슬 난해해지고 있는데 제가 직접 실행시켜볼 수 있도록 코드 전체를 올려주시면 좋겠습니다.

cgzoa님의 프로필 이미지
cgzoa

작성한 질문수

질문하기