강의

멘토링

커뮤니티

Inflearn Community Q&A

jyh51014766's profile image
jyh51014766

asked

[MMORPG Game Development with C++ and Unreal Series] Part 1: Introduction to C++ Programming

lambda

함수객체 의 매개변수

Written on

·

341

·

Edited

0

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

영상에서 람다식 사용 이전

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

C++

Answer 1

1

Rookiss님의 프로필 이미지
Rookiss
Instructor

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

jyh51014766's profile image
jyh51014766

asked

Ask a question