बस इसे लिखें:
const std::size_t n = sizeof...(T);
ध्यान दें कि n
एक स्थिर अभिव्यक्ति है (अर्थात संकलन-समय पर ज्ञात), जिसका अर्थ है कि आप इसका उपयोग कर सकते हैं जहाँ निरंतर अभिव्यक्ति की आवश्यकता होती है, जैसे:
std::array<int, n> a;
std::array<int, 2*n> b;
auto middle = std::get<n/2>(tupleInstance);
ध्यान दें कि यदि आप पैक प्रकार के एकत्रित आकार (के रूप में करने का विरोध किया गणना करने के लिए चाहते हैं नंबर पैक में प्रकार के), तो आप इस तरह कुछ करने के लिए है:
template<std::size_t ...>
struct add_all : std::integral_constant< std::size_t,0 > {};
template<std::size_t X, std::size_t ... Xs>
struct add_all<X,Xs...> :
std::integral_constant< std::size_t, X + add_all<Xs...>::value > {};
फिर ऐसा करें:
constexpr auto size = add_all< sizeof(T)... >::value;
C ++ 17 (और बाद में) में, गुना अभिव्यक्ति का उपयोग करके प्रकार के आकार की गणना करना बहुत सरल है :
constexpr auto size = (sizeof(T) + ...);
उम्मीद है की वो मदद करदे।
sizeof...(T)
।