- utility[meta header]
- std[meta namespace]
- type-alias[meta id-type]
- cpp14[meta cpp]
namespace std {
template <std::size_t N>
using make_index_sequence = make_integer_sequence<std::size_t, N>;
}
- make_integer_sequence[link make_integer_sequence.md]
make_index_sequence
は、要素数を指定して、0から始まるsize_t
型整数シーケンスを生成する、make_integer_sequence
の別名である。
テンプレートパラメータは、以下を意味する:
N
: 要素数
#include <iostream>
#include <utility>
void g(std::size_t a, std::size_t b, std::size_t 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::make_index_sequence<3>());
}
- std::make_index_sequence[color ff0000]
- std::integer_sequence[link integer_sequence.md]
0, 1, 2
- C++14
- Clang: 3.4 [mark verified]
- GCC: 4.9.0 [mark verified]
- ICC: ??
- Visual C++: 2015 [mark verified]