작성
·
148
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>>
가 처음 호출되게 되면 value = 1(Mage) + Length<(Knight
=>)TypeList<U...>>::value
가 된다고 알고있습니다. template<typename T, typename... U>
struct Length<TypeList<T, U...>> { }
value = 1 + Length<TypeList<U...>>::value
Length<TypeList<Mage, Knight>>::value;
처럼 TypeList에 답변 1
1
그건 아니구요 1개를 뺀 나머지가 포인트입니다.
A, B, C라면 Length(A, B, C) = 1 + Length(B + C) = 1 + 1 + Length(C)느낌인 것이죠.
template<typename T, typename... U>
struct Length<TypeList<U...>>
{ enum { value = 1 + Length<TypeList<U...>>::value }; };