Share via


tuple_size 클래스

tuple 에 포함된 요소 수를 보관합니다.

구문

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

매개 변수

Tuple
튜플의 형식입니다.

Elem
배열 요소의 형식입니다.

Size
배열 크기입니다.

T1
쌍의 첫 번째 구성원 형식입니다.

T2
쌍의 두 번째 구성원 형식입니다.

Types
튜플 요소의 형식입니다.

설명

클래스 템플릿에는 값이 튜플 형식의 범위인 정수 상수 식인 멤버 value 가 있습니다 Tuple.

배열의 템플릿 특수화에는 해당 값이 value(배열의 크기)인 정수 계열 상수 식 Size 구성원이 있습니다.

쌍의 템플릿 특수화에는 해당 값이 2인 정수 계열 상수 식 value 구성원이 있습니다.

예시

#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

요구 사항

헤더<tuple>:

헤더:<array> (배열 특수화용)

헤더:<utility> (쌍 특수화의 경우)

네임스페이스:std