Classe tuple_size

Restituisce il numero di elementi contenuti in un tuple .

Sintassi

// TEMPLATE STRUCT tuple_size
template <class Tuple>
   struct tuple_size;

// number of elements in array
template <class Elem, size_t Size>
   struct tuple_size<array<Elem, Size>>
      : integral_constant<size_t, Size>;

// size of pair
template <class T1, class T2>
   struct tuple_size<pair<T1, T2>>
      : integral_constant<size_t, 2>

// size of tuple
template <class... Types>
   struct tuple_size<tuple<Types...>>
      : integral_constant<size_t, sizeof...(Types)>;

// size of const tuple
template <class Tuple>
   struct tuple_size<const Tuple>;

// size of volatile tuple
template <class Tuple>
   struct tuple_size<volatile Tuple>;

// size of const volatile tuple
template <class Tuple>
   struct tuple_size<const volatile Tuple>;

template <class T> inline constexpr size_t tuple_size_v = tuple_size<T>::value;

Parametri

Tuple
Tipo della tupla.

Elem
Tipo degli elementi della matrice.

Size
Dimensione della matrice.

T1
Tipo del primo membro della coppia.

T2
Tipo del secondo membro della coppia.

Types
Tipo degli elementi della tupla.

Osservazioni:

Il modello di classe ha un membro value che è un'espressione costante integrale il cui valore è l'extent del tipo Tupledi tupla .

La specializzazione modello per le matrici include un membro value che è un'espressione costante integrale di valore Size, corrispondente alla dimensione della matrice.

La specializzazione modello per la coppia include un membro value che è un'espressione costante integrale di valore 2.

Esempio

#include <tuple>
#include <iostream>

using namespace std;

typedef tuple<int, double, int, double> MyTuple;
int main()
{
    MyTuple c0(0, 1.5, 2, 3.7);

    // display contents "0 1 2 3"
    cout << get<0>(c0);
    cout << " " << get<1>(c0);
    cout << " " << get<2>(c0);
    cout << " " << get<3>(c0) << endl;

    // display size "4"
    cout << " " << tuple_size<MyTuple>::value << endl;
}
0 1.5 2 3.7
4

Requisiti

Intestazione: <tuple>

Intestazione: <array> (per la specializzazione della matrice)

Intestazione: <utility> (per la specializzazione della coppia)

Spazio dei nomi: std