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
ペアの 2 番目のメンバーの型。
Types
タプル要素の型。
解説
クラス テンプレートには、値がタプル型Tuple
の範囲である整数定数式であるメンバー value
があります。
配列のテンプレート特殊化には、配列のサイズである Size
を値として持つ整数定数式であるメンバー value
が含まれます。
ペアのテンプレート特殊化には、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>
Header: <array>
(配列の特殊化用)
ヘッダー: <utility>
(ペアの特殊化用)
名前空間: std