Udostępnij przez


Klasa tuple_size

Raportuje liczbę elementów, które tuple zawiera.

Składnia

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

Parametry

Tuple
Typ krotki.

Elem
Typ elementów tablicy.

Size
Rozmiar tablicy.

T1
Typ pierwszego elementu członkowskiego pary.

T2
Typ drugiego elementu członkowskiego pary.

Types
Typy elementów krotki.

Uwagi

Szablon klasy ma składową value , która jest wyrażeniem stałej całkowitej, którego wartość jest zakresem typu Tuplekrotki .

Specjalizacja szablonu dla tablic ma element członkowski value , który jest integralnym wyrażeniem stałym, którego wartość to Size, czyli rozmiar tablicy.

Specjalizacja szablonu dla pary ma element członkowski value , który jest wyrażeniem stałym całkowitym, którego wartość to 2.

Przykład

#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

Wymagania

Nagłówka:<tuple>

Nagłówek:<array> (dla specjalizacji tablicy)

Nagłówek:<utility> (dla specjalizacji pary)

Obszaru nazw:std