Share via


Classe tuple_size

Indique le nombre d’éléments qu’un tuple contient.

Syntaxe

// 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;

Paramètres

Tuple
Type du tuple.

Elem
Type des éléments du tableau.

Size
Taille du tableau.

T1
Type du premier membre de la paire.

T2
Type du second membre de la paire.

Types
Types des éléments de tuple.

Notes

Le modèle de classe a un membre value qui est une expression constante intégrale dont la valeur est l’étendue du type Tupletuple .

La spécialisation de modèle pour les tableaux possède un membre value qui est une expression constante intégrale dont la valeur est Size, qui est la taille du tableau.

La spécialisation de modèle pour une paire possède un membre value qui est une expression constante intégrale dont la valeur est 2.

Exemple

#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

Spécifications

En-tête<tuple>:

En-tête :<array> (pour la spécialisation de tableau)

En-tête :<utility> (pour la spécialisation de paire)

Espace de noms :std