namespace std {
template <class T, T N>
using make_integer_sequence = integer_sequence<T, 0, 1, …, N - 1>;
}
概要
make_integer_sequence
は、要素数を指定して、0から始まる整数シーケンスを生成する、integer_sequence
クラステンプレートの別名である。
テンプレートパラメータは、以下を意味する:
T
: シーケンスの要素となる整数型N
: 要素数
要素数N
に0が設定された場合は、integer_sequence<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()
{
// integer_sequence<int, 0, 1, 2>を作って渡す
f(std::make_integer_sequence<int, 3>());
}
出力
0, 1, 2
バージョン
言語
- C++14
処理系
- Clang: 3.4 ✅
- GCC: 4.9.0 ✅
- ICC: ??
- Visual C++: 2015 ✅