GeezerVison is showing cpprefjp.github.io — std::integer_sequence - cpprefjp C++日本語リファレンス
最終更新日時:
2026年09月11日 13時06分31秒 (JST)
Akira Takahashi
が更新
履歴
編集
class template
<utility>
std:: integer_sequence (C++14)
namespace std {
template < class T , T ... I >
struct integer_sequence {
using value_type = T ;
static constexpr std::size_t size () noexcept { return sizeof ...( I ); }
};
}
概要
integer_sequenceは、任意の整数型のシーケンスをコンパイル時に表現するクラスである。
このクラスは、tuple オブジェクトを展開して、引数パックとして他の関数に転送することを主目的として作られた。
適格要件
タプルインタフェース
非メンバ関数
名前
説明
対応バージョン
get
指定したインデックスの整数値を取得する
C++26
備考
C++17まで : テンプレートパラメータ T が整数型でない場合の動作は未定義 。
C++20から : T が整数型でない場合、プログラムは不適格 となり、コンパイルエラーとなることが要求されるようになった。
例
基本的な使い方
#include <iostream>
#include <utility>
void g ( int a , int b , int c )
{
std::cout << a << ", " << b << ", " << c << std::endl ;
}
template < class T , T ... Seq >
void f ( std::integer_sequence < T , Seq ... > )
{
// 定数のシーケンス{0, 1, 2}を取り出して、関数g()の引数として転送
g ( Seq ...);
}
int main ()
{
f ( std::integer_sequence < int , 0 , 1 , 2 > ());
}
出力
0, 1, 2
構造化束縛とtemplate for文で使用する (C++26)
出力
0 1 2
0 1 2
バージョン
言語
処理系
参照