C++における可変引数テンプレートの使用方法


可変引数テンプレートを使用するためには、次の手順を実行します。

  1. テンプレートの宣言: テンプレートパラメータとして可変数の引数を指定します。たとえば、以下のように書くことができます。
template<typename... Args>
void myFunction(Args... args) {
    // 引数の処理
}
  1. 引数の処理: 可変数の引数を処理するために、再帰的なアプローチを使用します。以下のように、展開パック(args...)を使って引数を処理するコードを書くことができます。
template<typename... Args>
void myFunction(Args... args) {
    // 引数の処理
    // ...

    // 再帰呼び出し
    myFunction(args...);
}

このように、可変引数テンプレートを使用することで、異なる数の引数を持つ関数やクラスを一つのテンプレートで表現することができます。以下に、いくつかのコード例を示します。

  1. 可変引数の合計を計算する関数:
template<typename... Args>
int sum(Args... args) {
    return (args + ...);
}

この関数は、与えられた可変数の引数の合計を計算します。たとえば、sum(1, 2, 3, 4)は10を返します。

  1. 可変引数の平均を計算する関数:
template<typename... Args>
double average(Args... args) {
    return static_cast<double>(sum(args...)) / sizeof...(args);
}

この関数は、与えられた可変数の引数の平均値を計算します。たとえば、average(1, 2, 3, 4)は2.5を返します。

以上が、C++における可変引数テンプレートの基本的な使用方法といくつかのコード例です。この機能を活用することで、柔軟なプログラミングソリューションを実現することができます。