Sdílet prostřednictvím


Třída tuple_size

Zaznamenává počet prvků, které tuple obsahuje.

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;

Parametry

Tuple
Typ řazené kolekce členů.

Elem
Typ prvků pole.

Size
Velikost pole.

T1
Typ prvního člena dvojice.

T2
Typ druhého člena dvojice.

Types
Typy prvků řazené kolekce členů.

Poznámky

Šablona třídy má člen value , který je celočíselný konstantní výraz, jehož hodnota je rozsah typu Tupleřazené kolekce členů .

Specializace šablony pro pole má člen value , který je celočíselný konstantní výraz, jehož hodnota je Size, což je velikost pole.

Specializace šablony pro dvojici má člen value , který je celočíselný konstantní výraz, jehož hodnota je 2.

Příklad

#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

Požadavky

Záhlaví: <tuple>

Hlavička: <array> (pro specializaci podle pole)

Hlavička: <utility> (pro spárování specializace)

Obor názvů: std