inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

typecast 강의 관련 질문입니다.

196

snu

작성한 질문수 36

0

template<typename T, typename... U>
struct Length<TypeList<T, U...>>
{ enum { value = 1 + Length<TypeList<U...>>::value }; };
 
int32 len1 = Length<TypeList<Mage, Knight>>::value;
 
위 코드에서 Length<TypeList<Mage, Knight>>가 처음 호출되게 되면
T = Mage, U = Knight가 되어 
                                                     
value = 1(Mage) + Length<(Knight=>)TypeList<U...>>::value가 된다고 알고있습니다.
 
그런데
template<typename T, typename... U>

struct Length<TypeList<T, U...>> {   }

로 Length 구조체 자체가 T,와 가변인자 U를 받는데 어떻게
value = 1 + Length<TypeList<U...>>::value
에서 가변인자 U...하나만 받을 수 있는지 궁금합니다.
재귀호출이 되려면
Length<TypeList<Mage, Knight>>::value;
처럼 TypeList에
T에 해당하는 것과 U에 해당하는것을 모두 넣어야하지 않나요?
 

network MMORPG windows-server

답변 1

1

Rookiss

Length<TypeList<Mage, Knight>>::value; 처럼 TypeList에
T에 해당하는 것과 U에 해당하는것을 모두 넣어야하지 않나요?

그건 아니구요 1개를 뺀 나머지가 포인트입니다.
A, B, C라면 Length(A, B, C) = 1 + Length(B + C) = 1 + 1 + Length(C)느낌인 것이죠.

 
 

0

snu

template<typename T, typename... U>
struct Length<TypeList<U...>>
{ enum { value = 1 + Length<TypeList<U...>>::value }; };
답변 감사합니다.
그럼 애초에 템플릿 선언 자체를 위와 같이 가변인자만 받도록해도 동일한가요?
두번째 호출 부터는 인자에 TypeList<U...>만 전달되니 말입니다.
아니면 T,U...처럼 구분자가 있어야 처음 값을 떼어내고 나머지 인자들부터 전달되나요?

0

Rookiss

그건 아니구요.
Length<TypeList<T, U...>>
{ enum { value ...

의 의미는 Length<TypeList<T, U...>::value = 1 + Length<TypeList<U...>::value

입니다.

0

snu

감사합니다

writeLock을 잡을때 꼭 empty 상태여야하는 이유?

0

63

2

Memory Pool에서 오버플로우 질문입니다.

0

94

2

포토폴리오 및 진로 관련하여 고민입니다.

0

172

1

포토폴리오 관련 고민입니다.

0

91

1

실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.

0

107

2

성능 테스트 결과

0

117

2

게임 서버 Stateful, Stateless 진로 고민

0

147

1

WaitOnAddress와 Sleep의 차이 질문

0

98

1

궁금한거 있습니다.

0

92

2

JobTimer 구동 스레드

0

116

2

TryPop() 동작 관련 질문

0

86

1

로드맵 C#서버 C++서버 방향성 질문

0

162

2

스레드 id를 출력할떄 메인스레드 id도 출력되나요?

0

81

1

생명주기를 위한 의도적 복사

0

94

2

락프리의 실무에서 사용 질문

0

154

2

32bit threadID와 16비트 상위 WriteFlag에 대해

0

109

2

mutex와 sleep 차이점

0

133

1

실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다

0

167

2

Stomp Allocator의 Release함수에 대한 질문입니다.

0

102

1

공부법 관련해서

0

190

2

MakeShared 함수 관련

0

119

1

지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.

0

152

2

운영체제관련 질문입니다

0

144

1

send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.

0

125

2