namespace std {
template <std::size_t I, class T, T... Values>
constexpr T get(integer_sequence<T, Values...>) noexcept; // (1) C++26
}
概要
integer_sequenceから、I番目の整数値を取得する。
適格要件
I < sizeof...(Values)であること
戻り値
Values...のI番目の値
例外
投げない
例
基本的な使い方
出力
10
20
30
構造化束縛で使用する
構造化束縛は内部的にget<I>を呼び出して各要素を取り出す。
#include <iostream>
#include <utility>
template <std::size_t Count>
void run() {
// 各Indexはget<I>(make_index_sequence<Count>{})から取り出される
constexpr auto [...Index] = std::make_index_sequence<Count>{};
((std::cout << Index << ' '), ...);
std::cout << std::endl;
}
int main()
{
run<3>();
}
出力
0 1 2
template for文で使用する
template for文はループの各反復でget<I>を呼び出す。
#include <iostream>
#include <utility>
int main()
{
// 各反復で get<0>, get<1>, get<2> が呼び出される
template for (auto I : std::make_index_sequence<3>{}) {
std::cout << I << ' ';
}
std::cout << std::endl;
}
出力
0 1 2
バージョン
言語
- C++26
処理系
- Clang: 23 ✅
- GCC: 16.1 ✅
- Visual C++: 2026 Update 2 ❌