• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

ObjectPool.h Push에는 괄호를 안쓴 이유가 무엇일까요

24.01.21 22:56 작성 조회수 158

0

ObjectPool.h에서 게임서버쪽에서 MakeShared

를 사용할때도 메모리 풀이 적용되게해주는 함수인데

여기서 Push는 왜 괄호를 안쓴걸까요 ??

 

static shared_ptr<Type> MakeShared()

{

shared_ptr<Type> ptr = { Pop(), Push};

return ptr;

}

 

 

GameServer.cpp에서 이미 아래와 같이

인자를 전달해서 그런걸까요..??

왜 이렇게 되는지 궁금합니다..

ObjectPool<Knight>::Push(knights[i]);

 

답변 1

답변을 작성해보세요.

1

shared_ptr 생성자에서 받는 인자 순서가
1. 관리할 대상 포인터 2. constructor 함수 (옵션)인데
1은 실제 객체를, 2번은 callable을 받기 때문에 그런 것입니다.
shared_ptr코드를 타고 가서 생성자를 살펴보시면 되겠습니다.