Freigeben über


tuple_size-Klasse

Ruft die Anzahl der Elemente in einem tuple ab.

Syntax

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

Parameter

Tuple
Der Typ des Tupels.

Elem
Der Typ der Arrayelemente.

Size
Die Größe des Arrays.

T1
Der Typ des ersten Members des Paares.

T2
Der Typ des zweiten Members des Paares.

Types
Die Typen der Elemente des Tupels.

Hinweise

Die Klassenvorlage verfügt über ein Element value , das ein integraler Konstantenausdruck ist, dessen Wert das Ausmaß des Tupeltyps Tupleist.

Die Vorlagenspezialisierung für Arrays verfügt über einen Member value, der ein ganzzahliger konstanter Ausdruck ist, dessen Wert Size und damit die Größe des Arrays ist.

Die Vorlagenspezialisierung für Paare verfügt über einen Member value, der ein ganzzahliger konstanter Ausdruck ist, dessen Wert 2 ist.

Beispiel

#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

Anforderungen

Header: <tuple>

Kopfzeile: <array> (für Arrayspezialisierung)

Kopfzeile: <utility> (für Paarspezialisierung)

Namespace:std