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