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

minseob2996님의 프로필 이미지

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Object Pool

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

24.01.21 22:56 작성

·

273

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

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

2024. 01. 21. 23:42

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