最終更新日時:
が更新

履歴 編集

type-alias
<utility>

std::make_integer_sequence(C++14)

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

処理系

参照