C++のテンプレートはパラメータとして関数をとることができる

C++のテンプレートはパラメータとして関数をとることができる。

/**
 * 3倍する
 */
int treble(int x)
{
  return x * 3;
}
/**
 * 4倍する
 */
int quadruplicate(int x)
{
  return x * 4;
}
/**
 * 引数を計算式で計算する
 * @param function int型の引数をとりint型を返す関数
 * @param a 計算する値
 * @return 計算結果
 */
template<int function(int)>
int calc(int a)
{
  return function(a);
}

//2を3倍する
int num1 = calc<treble>(2);
//3を4倍する
int num2 = calc<quadruplicate>(3);

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください