작성
·
41
·
수정됨
0
강의 내용 22:00에 보편참조라고 설명해 주시면서
Job 생성자를 만들어주셨습니다.
하지만 Job생성자는 우측값 참조가 아니면 생성이 되지 않습니다.
반면에 우측값 참조로 넣어주면 전부 에러 없이 생성되었습니다
Job 생성자가 보편참조라면 좌측값인 player로도 생성이 되어야 하지 않나요?
만약 Job 생성자가 보편참조가 아니라면
GRoom->PushJob(&Room::Enter, player) 부분에서
보편참조가 아닌 함수에서 L-value를 std::forward를 사용하면 오른쪽 참조값으로 바뀌기 때문에
auto job = ObjectPool<Job>::MakeShared(owner, memFunc, std::forward<Args>(args)...);
이함수는 결국 우측값 참조를 받는 Job생성자를 호출하게 되어 Job을 만들어 주었기 때문에 에러가 발생하지 않고 잘 실행 되었던거라고 이해하면 될까요?
만약 Job생성자가 보편참조가 아니라면 왜 보편참조가 될 수 없나요?
강의 핵심내용은 JobQueue에 관한 내용이지만
보편참조가 너무 헷갈려서 질문하게 되었습니다..
답변