강의

멘토링

커뮤니티

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

피로한 미어캣님의 프로필 이미지
피로한 미어캣

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

람다 (lambda)

함수객체 의 매개변수

작성

·

338

·

수정됨

0

루키스님 안녕하세요. 질문 있습니다!

영상에서 람다식 사용 이전

isuniqueitem 함수 객체를 통해 find if 매개변수로 넣어주셨는데요. Isuniqueitem은 매개변수로ITEM& item이 들어갑니다. 하지만 임시 객체 어떠한 부분에도 item을 넣어준 적이 없는데 어떻게 작동하는걸까요? F12 통해 보려고해도 이해가 잘 되지않아 질문 드립니다.

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

임시 객체에 item을 넣어준 적이 없지만, 애당초 넣을 필요가 없습니다.
operator()에 (Item&)이 있는 것이지 생성자에 붙어있는게 아닙니다!
내부적으로 find_if에서는 우리가 넣어준 IsUniqueItem이라는 객체를 대상으로
operator()를 실행하는데 이 때 Item&을 넣어주면서 실행할 것이고,
딱 마침 vector가 Item 타입이니 자연스럽게 실행되는 것이죠.
image위에서 보면 Pr Pred에 IsUniqueItem() 객체가 들어가고,
이것을 이용해서
Pred(*_UFirst)하는 부분에서
operator(Item&) 부분에 실행됩니다.

피로한 미어캣님의 프로필 이미지
피로한 미어캣

작성한 질문수

질문하기