| unspecialized | template <class T> class tuple_size; |
|---|---|
| generic cv-specializations | template <class T> class tuple_size<const T>;template <class T> class tuple_size<volatile T>;template <class T> class tuple_size<const volatile T>; |
| tuple specialization | template <class... Types> struct tuple_size<tuple<Types...> >; |
constexpr).<tuple> header as:1
2
template <class... Types>
struct tuple_size<tuple<Types...> > : integral_constant<size_t, sizeof...(Types)> {};
constexpr value.const and/or volatile-qualified tuples and tuple-like objects, the class is specialized so that its value member is itself non cv-qualified (size_t for tuples).| member constant | definition |
|---|---|
| value | The number of elements in the tuple or tuple-like object. This is a constexpr value of the unsigned integral type size_t . |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// tuple_size
#include <iostream> // std::cout
#include <tuple> // std::tuple, std::tuple_size
int main ()
{
std::tuple<int,char,double> mytuple (10,'a',3.14);
std::cout << "mytuple has ";
std::cout << std::tuple_size<decltype(mytuple)>::value;
std::cout << " elements." << '\n';
return 0;
}
mytuple has 3 elements